用于寻找重复单词的正则表达式

时间:2017-06-18 13:46:46

标签: java regex

**(?i)\\b([a-z]+)\\b(?:\\s+\\1\\b)+**

我理解每个符号的含义但是当符号组合时......我无法弄明白。混淆部分是(?:\ s + \ 1 \ b)+。这是什么意思???你能解释一下吗?谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

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

  • (?:...) - 非捕获组。它包含:
  • \s+ - 空格字符的非空序列。
  • \1 - 对捕获组#1(\b([a-z]+)\b)的反向引用。 这意味着你想拥有相同的字符(重复的字) 刚被抓获。
  • \b - 字边界,在这种情况下从字区过渡到空间区域

在上面的整个组之后有一个+符号,意思是你想要的 匹配尽可能多的重复单词。