用于捕获重复单词的正则表达式(在文本中重复多次重复2次)

时间:2014-10-12 17:07:08

标签: java regex

我想在JAVA中编写一个程序,以捕获在文本内容中重复超过2次的单词。

  • 这种重复可以是3,4,5或许多。
  • 重复可能会在文本周围散布,并且没有任何顺序。
  • 我也需要保持重复的次数。
  • 不应区分大小写。

例如: 红笔上的蓝皮书是我见过的最大的书。 结果:3

这件事的正则表达模式可以是什么?

2 个答案:

答案 0 :(得分:1)

我不建议通过正则表达式来解决这个问题,而是建议使用以下算法:

  1. 将您的句子拆分为单词(使用空格)并将其小写版本存储在List<String>中。
  2. 将地图声明为HashMap<String, Integer>
  3. 迭代您的单词List并继续存储在地图中。
  4. 如果Map没有单词的条目,那么key=word, value=1
  5. 否则将值增加1,给出每个单词的频率。
  6. 每次频率超过2时,您的输出HashSet<String>
  7. 中都会存储该字词
  8. 在循环结束时,只需打印HashSet<String>
  9. 即可

答案 1 :(得分:0)

除非用文字拆分文本,否则不需要正则表达式。接下来,您只需使用一个Map,其中键是单词,值是数字或重复。

完成后,您只需扫描地图即可找到重复最多的单词。