我已经看到用单个空格/
替换空格的多个示例,但是我想要替换具有两个或更多空格且等于
Regex.Replace(theString, @"[\s+]{2,}", " ");
此替换有效,但如果它是两个空格,则会插入一个
,我理解。
如果计数超过两个,如何将其替换为两个
或更多?
字符串:
This text contains multiple whitespaces
通缉结果:
This text contains multiple whitespaces
这是否可以使用Regex.Replace或我是否需要循环每个空格并替换它?
答案 0 :(得分:2)
使用匹配评估程序构建自定义替换:
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 '
请参阅C# demo
此处,\s{2,}
匹配2个或更多个空格,匹配在匹配评估程序中分配给m
,string.Concat(Enumerable.Repeat(" ", m.Length))
构建一个由
子串组成的字符串匹配长度时间(见this thread)。