我有大量的文字 - 大约7000字。
我想得到单词大小的计数,例如使用正则表达式计算4个字母单词,6个字母单词。
我不确定如何解决这个问题 - 到目前为止,我的思考过程是将句子拆分成一个String数组,这样我就可以计算每个元素的大小。使用正则表达式有更简单的方法吗?我正在使用Groovy完成这项任务。
编辑:所以我确实使用普通数组工作,但它有点凌乱。最终的解决方案只是使用了Groovy的countBy()方法,并为可能遇到类似问题的人提供了少量逻辑。
答案 0 :(得分:2)
不要忘记单词boudary token \b
。如果您没有将其放在\w{n}
令牌的两端,则还会找到所有超过n
个字符的字词。对于长度为6个字符的4个字符的单词\b\w{4}\b
,请使用\b\w{6}\b
。 Here is a demo以7000字为输入字符串。
Java实现:
String dummy = ".....";
Pattern pattern = Pattern.compile("\\b\\w{6}\\b");
Matcher matcher = pattern.matcher(dummy);
int count = 0;
while (matcher.find())
count++;
System.out.println(count);
答案 1 :(得分:0)
逐字逐句阅读文件并计算其长度。将计数器存储在数组中,并在读取每个单词后递增值。
答案 2 :(得分:0)
您可以为所需的每种尺寸生成正则表达式。
Node
会使每个单词完整地显示6个字母\w{6}
将使用7个字母完全填写每个单词因此,您可以在文本上运行其中一个正则表达式,并启用全局标志(查找整个字符串中的每个实例)。这将为您提供每个匹配的数组,然后您可以找到它的长度。