regex 所有重复的单词

55ooxyrt  于 2023-06-25  发布在  其他
关注(0)|答案(3)|浏览(130)

我需要找到所有重复的单词。例如:

"abc some word abc eee word abc"

应匹配:

abc abc abc word word

abc word abc word abc

我试过了:"(\b\w+\b)(?=.*?\b\1\b)",但它不匹配最后一个重复的单词。
p.s是否可以使用正则表达式(java或.net正则表达式引擎)找到所有重复项?

vdgimpew

vdgimpew1#

与其使用正则表达式,我建议简单地使用

Map<String, Integer>

键是从文本中解析出来的单词;该值表示计数器(用于出现的次数)。用1初始化计数器;当你再次找到相同的单词时,你的记忆会增加。

hwamh0ep

hwamh0ep2#

\b(\w+)\b(?=(?:(?!\b\1\b).)*\b(\1)\b(?:(?!\b\1\b).)*$)|\b(\w+)\b(?=.*?\b\3\b)

试试这个。看演示。抓住capturesgroups
https://regex101.com/r/pT4tM5/31

mrwjdhj3

mrwjdhj33#

@vks的答案可以简化为(\w+)(?=(?:(?!\1).)*\b(\1)\b)
请参见下面的示例。
https://regex101.com/r/3G5XV8/1

相关问题