我需要找到所有重复的单词。 例如:
"abc some word abc eee word abc"
应匹配:
abc abc abc word word
OR
abc word abc word abc
我尝试过:"(\b\w+\b)(?=.*?\b\1\b)"
但它与上一个重复的单词不匹配。
P.S 是否可以使用正则表达式(java或.net regex引擎)查找所有重复项?
答案 0 :(得分:1)
我建议只使用
,而不是使用正则表达式Map<String, Integer>
键是您从文本中解析的词;该值表示计数器(出现次数)。用1初始化计数器;当你再次找到同一个单词时会增加。
答案 1 :(得分:0)
\b(\w+)\b(?=(?:(?!\b\1\b).)*\b(\1)\b(?:(?!\b\1\b).)*$)|\b(\w+)\b(?=.*?\b\3\b)
试试这个。查看演示。抓住captures
或groups
。