正则表达式匹配超过2个空格但不是新行

Bru*_*uno 79 .net c# regex whitespace newline

我想要替换字符串中的所有超过2个空格而不是新行,我有这个正则表达式:\s{2,}但它也匹配新行.

如何仅匹配2个或更多空格而不是新行?

我正在使用c#

Bar*_*ers 145

将要匹配的空白字符放在字符类中.例如:

[ \t]{2,}
Run Code Online (Sandbox Code Playgroud)

匹配2个或更多空格或制表符.

你也可以这样做:

[^\S\r\n]{2,}
Run Code Online (Sandbox Code Playgroud)

它匹配任何空白字符除了\r\n至少两次(注意资本S\S缩写[^\s]).

  • 正则表达式中的@LonnieBest,对于转义序列,例如\ w,它通常是一种惯例,即大写转义序列是小写转义序列的反转字符集.例如\ d是\ D的反函数,\ s是\ S的反函数,\ w是\ W等的反函数.而且,在由[]分隔的字符类集中,如[abc],可以指定一个反向使用[^ abc].因此,\ S等效于[^\s],如果允许的话,它也等同于不允许的符号[^^\S].(^^不是表示逆的逆的有效方式.) (5认同)