如何在C#中用特殊字符替换字符串中的多个空格

5

如何在C#中用特殊字符替换字符串中的多个空格?

我有一个字符串:

Hi I  am new  here. Would   you    please help    me?

我希望得到以下输出结果:
Hi I$am new$here. Would$you$please help$me?

我尝试过

string line=@"Hi I  am new  here. Would   you    please help    me?";
string line1 = Regex.Replace(line,@"[\s\s]+","$");
Console.WriteLine(line1);

但是我的输出结果变成了:
Hi$I$am$new$here.$Would$you$please$help$me?

请问我哪里出错了?

3个回答

6
你应该指定你需要的不少于两个({2,})空格符号(\s):
string line1 = Regex.Replace(line,@"\s{2,}","$");

或者只有两个以上的空格 ([ ]):

string line1 = Regex.Replace(line,@"[ ]{2,}","$");

注意: [\s\s]+ 表示: 一个或多个在 [] 中指定的字符组,因此 \s 被重复两次,它只是表示:一个或多个空白字符。


2
您距离正确的解决方案并不远。您的代码最简单的修复方法是:
string line1 = Regex.Replace(line,@"\s\s+","$");

1
尝试使用这个正则表达式。
[\s]{2,}

它在代码中的位置是:

string line1 = Regex.Replace(line,@"[\s]{2,}","$");

{{link1:这里有一个Rubular演示}}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接