如何在一行中的单词之间搜索多个空格的出现次数

Sam*_*Sam 94 regex eclipse replace

如何在一行中的单词之间搜索多个空格的出现次数

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
Run Code Online (Sandbox Code Playgroud)

以上所有都是此正则表达式的有效匹配.我应该使用什么正则表达式?

Ale*_*rMP 158

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

空间(2个或更多)

你也可以检查那些空格之前和之后的单词.(不是像制表符或新行那样的其他空格)

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

同样,但您也可以选择(捕获)仅替换等任务的空间

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

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

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

  • `\w` 表示“单词字符”,即字母数字和下划线,但不是其他非空格字符。要检查非空白,请使用“\S”(大写 S)。此外,第一个只会匹配包含两个或更多空格的行,而不匹配其他任何内容。 (2认同)
  • `\w[ ]{2,}\w` 将无法匹配 `word.<2spaces>morewords` 或完全由空格组成的字符串。`[^\s]([ ]{2,})[^\s]\w` 在以空格或字符串开头的行(如 `bla<2spaces>.`)将会失败。 (2认同)

tda*_*ers 11

简单方案:

/\s{2,}/
Run Code Online (Sandbox Code Playgroud)

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

/^.*\s{2,}.*$/
Run Code Online (Sandbox Code Playgroud)

如果空格不需要是连续的:

/^(.*\s.*){2,}$/
Run Code Online (Sandbox Code Playgroud)


Owe*_*ono 11

此正则表达式选择所有空格,您可以使用它并将其替换为单个空格

\s+
Run Code Online (Sandbox Code Playgroud)

蟒蛇中的例子

result = re.sub('\s+',' ', data))
Run Code Online (Sandbox Code Playgroud)