2017-06-18 62 views
-4
**(?i)\\b([a-z]+)\\b(?:\\s+\\1\\b)+** 

我明白每个符号的意思,但是当符号合并时......我无法弄清楚。混淆部分是(?:\ s + \ 1 \ b)+。这是什么意思???你能向我解释吗?谢谢你的时间!寻找重复词的正则表达式

+0

将其粘贴到[http://regexr.com/](http://regexr.com/),它会向您解释。 – moritzg

+0

@moritzg谢谢你! – Shar

+0

@SebastianProske谢谢你! – Shar

回答

0

(?:\s+\1\b)+各个部件具有以下含义:

  • (?:...) - 非捕获基团。它包含:
  • \s+ - 一个非空序列空白字符。
  • \1 - 反向捕获组#1(\b([a-z]+)\b)。 这意味着你想在这里只是刚刚捕获相同的字符(重复的单​​词) 。
  • \b - 字边界,在这种情况下从字区空区转换。

整个以上组之后有一个+迹象,这意味着你要 匹配尽可能多的重复词成为可能。

+0

感谢您的解释。 – Shar