优化匹配两个html标签的正则表达式

时间:2010-08-07 03:57:54

标签: java html regex

((<(\\s*?)(object|OBJECT|EMBED|embed))+(.*?)+((object|OBJECT|EMBED|embed)(\\s*?)>))

我需要从本地存储在磁盘上的一些html文件中获取对象和嵌入标签。我想出了上面的正则表达式来匹配java中的标签  使用matcher.group(1);获取整个标记及其内容

任何人都可以改善这一点吗?有什么东西可以立刻突显给我,我应该改变吗?

它确实有用BTW,只是想输入一下,看看它是否会更好,因为我对自己的正则表达式来说还是个新手。

1 个答案:

答案 0 :(得分:2)

是的,这是改进:

  1. 下载一个完整的Java HTML解析器,如Jsoup,并将其放在类路径中。

  2. 现在,您可以选择所有<object><embed>元素,如下所示:

    Document document = Jsoup.parse(new File("/path/to/file.html"), "UTF-8");
    Elements elements = document.select("object,embed");
    for (Element element : elements) {
        System.out.println(element.outerHtml());
    }
    
  3. 另见: