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)“将每个长度超过两个的空格序列替换为长度相等的
序列”