如何search一行中单词之间多于一个空格的出现次数

如何search一行中单词之间多于一个空格的出现次数

1. this is a line containing 2 spaces 2. this is a line containing 3 spaces 3. this is a line containing multiple spaces first second three four 

以上所有对这个正则expression式都是有效的匹配。 我应该使用什么样的正则expression式?

 [ ]{2,} 

空间(2或更多)

你也可以在那些空格单词前后检查。 (而不是其他空格,如制表符或新行)

 \w[ ]{2,}\w 

相同的,但你也可以select(捕获)只有replace任务的空间

 \w([ ]{2,})\w 

或者在空格之前和之后看到任何东西,不仅是单词字符(除了空格)

 [^\s]([ ]{2,})[^\s] 

简单的scheme:

 /\s{2,}/ 

这匹配所有出现的一个或多个空格字符。 如果您需要匹配整行,但仅当它包含两个或更多个连续的空白字符时:

 /^.*\s{2,}.*$/ 

如果空格不需要连续:

 /^(.*\s.*){2,}$/ 

search[ ]{2,} 。 这将在行内的任何地方find两个或更多的相邻空间。 它也将匹配前后空格以及完全由空格组成的行。 如果你不想要,请查看Alexander的答案。

其实,你可以省略括号,它们只是为了清楚(否则空间字符是重复是不是很好的可见:))。

\s{2,}在于,它也会匹配Windows文件上的换行符(换行符用CRLF\r\n ,与\s{2}匹配\s{2}

如果您还想查找多个选项卡和空格,请使用[ \t]{2,}