我是在正则表达式之后,当有两个或更多个重复的元素时,会删除空白,只留下一个空格。连续多于一个时删除多余的空格
例如这行
The cow jumped over the moon
其具有多个空格在一些情况下分离的话会成为
The cow jumped over the moon
我是在正则表达式之后,当有两个或更多个重复的元素时,会删除空白,只留下一个空格。连续多于一个时删除多余的空格
例如这行
The cow jumped over the moon
其具有多个空格在一些情况下分离的话会成为
The cow jumped over the moon
尝试此正则表达式:
[ ]+
,替换为一个空间。
我通常这样做的方式是反复用一个替换两个空格,直到找不到更多条目。这当然意味着多次传递和几轮替换,每轮都会分配和垃圾回收一个字符串,但是我发现开销比分析和执行正则表达式要少得多。即使有64个空间,也只需要7次修复。此外,典型的琴弦只有2-5个空间,所以它的工作速度更快。
string cleanedString = Regex.Replace(input, @"\s+", " ");
我一直用sed来做这个。
$ echo "The cow jumped over the moon" | sed -e 's/[ ]\+/ /g'
The cow jumped over the moon
在字符类方括号中有空格和制表符。我用'\'引用了'+',如果您的正则表达式引擎使用“+”表示“一个或多个”而不是文字“+”,则可能不需要。
这不会匹配标签afaik – annakata 2009-06-01 12:39:19
\ s将是一个更好的代表性。 – Cerebrus 2009-06-01 12:55:19