一个或多个空格、制表符或换行符的正则表达式

16

我目前正在使用这个正则表达式替换语句:

currentLine = Regex.Replace(currentLine, " {1,} \t \n", @" ");

它似乎没有起作用。

我需要一个正则表达式,将空格、换行符和/或制表符替换为单个空格。

还有其他的空格字符,我应该注意吗?


https://dev59.com/mHVC5IYBdhLWcg3wtzgQ - Sybren
1
你的正则表达式将查找一个或多个空格,后跟制表符,然后是空格,然后是一个新行。如果你想匹配其中之一,应该使用或(|)运算符。类似于“\s+|\t+|\n+”。 - Learner
2个回答

27

对于所有的空白字符,请使用:

\s+

对于特定的字符,您可以使用以下内容:

[ \t\n]+

其他的空格字符包括\r\f


4
currentLine = Regex.Replace(currentLine, @"\s+", " ");

+ 是指1个或多个,\s 是“空白字符”的简写。


2
需要注意的是,在C#中,\s只匹配Unicode。这可能是一个问题,也可能不是。 - Mr. Mascaro
1
@EvaldasB,@代表:https://dev59.com/AnRB5IYBdhLWcg3wro2B - Wyatt Earp

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