连续多个时删掉多余的空格

时间:2009-06-01 12:32:32

标签: c# regex

我正在使用一个Regex表达式,当有两个或更多个重复时,它会去除空格,只留下一个空格。

例如这一行

The cow  jumped    over the moon
在某些情况下,有多个空格分隔的

将成为

The cow jumped over the moon

4 个答案:

答案 0 :(得分:15)

string cleanedString = Regex.Replace(input, @"\s+", " ");

答案 1 :(得分:8)

试试这个正则表达式:

[ ]+

并用一个空格替换它。

答案 2 :(得分:0)

我通常这样做的方法是重复用一个空格替换两个空格,直到找不到更多的条目。这当然意味着多次传递和几轮替换w /每轮分配和垃圾收集一个字符串,但我发现开销远低于解析和执行正则表达式。即使有64个空格,也只需要7次通过即可修复。此外,典型的字符串只有2-5个空格,因此工作速度更快。

答案 3 :(得分:0)

我一直用sed做这个。

$ echo "The cow  jumped    over the moon" | sed -e 's/[     ]\+/ /g'
The cow jumped over the moon

在字符类方括号中,您有一个空格和制表符。我用'\'引用'+',如果你的正则表达式引擎用'+'表示“一个或多个”而不是文字'+',则可能没有必要。