我StringUtils.countMatches
用来计算单词频率,有没有办法在文本中搜索以某些字符开头的单词?
例子:
在“我的公寓里的人工艺术”中搜索艺术将返回 3!我需要它为仅以艺术开头的单词返回 2 。
我的解决方案是用空格替换文本中的 \r 和 \n 并将代码修改为:
text = text.replaceAll("(\r\n|\n)"," ").toLowerCase();
searchWord = " "+searchWord.toLowerCase();
StringUtils.countMatches(text, searchWord);
我还尝试了以下正则表达式:
patternString = "\\b(" + searchWord.toLowerCase().trim() + "([a-zA-Z]*))";
pattern = Pattern.compile(patternString);
matcher = pattern.matcher(text.toLowerCase());
问题:-我的第一个解决方案有意义还是有更好的方法来做到这一点?
- 我的第二个解决方案更快吗?因为我正在处理大型文本文件和相当数量的搜索词。
谢谢