Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用多个&;替换多个空格的正则表达式;nbsp;_C#_Regex - Fatal编程技术网

C# 用多个&;替换多个空格的正则表达式;nbsp;

C# 用多个&;替换多个空格的正则表达式;nbsp;,c#,regex,C#,Regex,我见过多个用单个空格替换空格的例子,但是我想用相等的替换每个有两个或更多空格的空格 Regex.Replace(theString, @"[\s+]{2,}", " "); 这个替换是有效的,但是如果它是两个空格,它会插入一个,我理解这一点 如果计数超过两次,如何将其替换为两次或更多 字符串: This text contains multiple whitespaces 通缉结果: 此文本包含多个空格 Regex.Replace可以这样做吗?还是需要循环每个空格

我见过多个用单个空格替换空格的例子,但是我想用相等的
替换每个有两个或更多空格的空格

Regex.Replace(theString, @"[\s+]{2,}", " ");
这个替换是有效的,但是如果它是两个空格,它会插入一个
,我理解这一点

如果计数超过两次,如何将其替换为两次或更多

字符串:

This text   contains    multiple whitespaces
通缉结果:
此文本包含多个空格


Regex.Replace可以这样做吗?还是需要循环每个空格并替换它?

使用匹配计算器生成自定义替换:

var s = " 1  2   3    4 ";
var result = Regex.Replace(s, @"\s{2,}", m =>
    string.Concat(Enumerable.Repeat(" ", m.Length)));
Console.WriteLine(result);
// => ' 1  2   3    4 '


这里,
\s{2,}
匹配2个或多个空格,匹配被分配给匹配计算器中的
m
,并且
string.Concat(Enumerable.Repeat(“,m.Length))
构建一个由匹配长度时间的
子字符串组成的字符串(请参阅).

似乎您的输入字符串和想要的结果会将问题描述为“将每个空格替换为
”,但您的问题描述是(parahprasing)“将每个长度超过两个的空格序列替换为长度相等的
序列”