【问题标题】:get text between html tags获取html标签之间的文本
【发布时间】:2010-01-18 18:48:20
【问题描述】:

可能重复:RegEx matching HTML tags and extracting text

我需要获取 html 标记之间的文本,例如 <p></p> 或其他。我的模式是这样的

Pattern pText = Pattern.compile(">([^>|^<]*?)<");

任何人都知道一些更好的模式,因为它不是很有用。我需要它来索引网页中的内容。

谢谢

【问题讨论】:

标签: java regex matcher


【解决方案1】:

SO 即将降临在你身上。但是让我先说,不要使用正则表达式来解析 HTML。 Here 是 Java HTML 解析器的列表。环顾四周,直到找到适合您的 API 并改用它。

【讨论】:

  • TagSoup 特别适合您担心 HTML 不完整。
【解决方案2】:

您似乎正在尝试在负集内使用 | 运算符,这既不工作也不需要。只需指定您不想匹配的字符:

Pattern pText = Pattern.compile(">([^<>]*?)<");

【讨论】:

    【解决方案3】:

    解析 HTML 时不要使用正则表达式。

    请改用XPath(如果您的 HTML 格式正确)。您可以使用text() 函数非常轻松地引用文本节点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      相关资源
      最近更新 更多