我有一种情况需要在HTML文档中找到单词/短语/通配符的出现次数。我认为最好的解决方案来自正则表达式。关于如何做到这一点的任何意见或想法。如果它的正则表达式可以指导我如何使用Java开始它。
答案 0 :(得分:5)
我建议使用HTML解析器(例如jsoup
)而不是正则表达式来执行此操作。
答案 1 :(得分:4)
这是一个如何计算正则表达式匹配数的示例。该示例仅计算输入字符串中“foo”的出现次数。
Pattern p = Pattern.compile("foo");
Matcher matcher = p.matcher("foo bar foo baz foo qux foo");
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("Count: " + count); // count == 4
答案 2 :(得分:1)
简单的Java。
Pattern pattern = Pattern.compile("myregex");
int count = 0;
// Read each line of the HTML document into the below variable
String line = ...
if(pattern.matcher(line).matches())
{
count++;
}
答案 3 :(得分:1)
由于您指定了正则表达式,我假设您只是在寻找关键词。如果您不想使用jsoup作为dogbane建议您可以随时使用Calculating Word Frequencies with Regular Expressions
答案 4 :(得分:0)
为什么在命令行单行程完美运行时编写一个亿行程序?
% perl -nle 'while (/pat/g) { $count++ } END { print $count }' input files go here
对于许多许多其他预先存在的工具,甚至是古老的awk
,你也可以做同样的事情。为什么在该工作完成后使用汇编语言?似乎像NIH综合症一样危险。
也许你有其他我已经理解的要求。上一次Java高级人员有问题,他问我如何判断输入文件中的哪些行有一个标签。他本来打算为此编写一个Java程序( BOGGLE!),但在最后一分钟认为可能有更好的方法。
有。