Java正则表达式:计算HTML文档中的单词/短语/通配符

时间:2011-02-22 14:47:53

标签: java html regex

我有一种情况需要在HTML文档中找到单词/短语/通配符的出现次数。我认为最好的解决方案来自正则表达式。关于如何做到这一点的任何意见或想法。如果它的正则表达式可以指导我如何使用Java开始它。

5 个答案:

答案 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!),但在最后一分钟认为可能有更好的方法。

有。