Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 所有重复的单词_Java_.net_Regex - Fatal编程技术网

Java 所有重复的单词

Java 所有重复的单词,java,.net,regex,Java,.net,Regex,我需要找到所有重复的单词。 例如: "abc some word abc eee word abc" 应匹配: abc abc abc word word 或 我尝试过:“(\b\w+\b)(?=*?\b\1\b)”但它与最后一个重复的单词不匹配 p、 是否可以使用正则表达式(java或.net正则表达式引擎)查找所有重复项 Map<String, Integer> Map 键是从文本中解析的单词;该值表示一个计数器(用于出现的次数)。用1初始化计数器;当你再次找到同一个词

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

"abc some word abc eee word abc"
应匹配:

abc abc abc word word

我尝试过:
“(\b\w+\b)(?=*?\b\1\b)”
但它与最后一个重复的单词不匹配

p、
是否可以使用正则表达式(java或.net正则表达式引擎)查找所有重复项

Map<String, Integer>
Map
键是从文本中解析的单词;该值表示一个计数器(用于出现的次数)。用1初始化计数器;当你再次找到同一个词时,它会增加

\b(\w+)\b(?=(?:(?!\b\1\b).)*\b(\1)\b(?:(?!\b\1\b).)*$)|\b(\w+)\b(?=.*?\b\3\b)
试试这个。参见演示。抓取
捕获


因为
(?=.*\b\1\b)
是一个断言,所以它不会匹配任何字符;你为什么要用正则表达式呢?性能无关吗?特别是对于这项任务,性能并不重要。主要目标是使用正则表达式(或者几乎是正则表达式)来实现,为什么不按照EddyG的建议扫描文本输入并构建一个映射呢
\b(\w+)\b(?=(?:(?!\b\1\b).)*\b(\1)\b(?:(?!\b\1\b).)*$)|\b(\w+)\b(?=.*?\b\3\b)