0

可能重复:RegEx 匹配 HTML 标记并提取文本

我需要获取 html 标记之类的文本之间的文本<p></p>。我的模式是这样的

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

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

谢谢

4

3 回答 3

5

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

于 2010-01-18T18:49:41.263 回答
3

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

Pattern pText = Pattern.compile(">([^<>]*?)<");
于 2010-01-18T18:52:35.260 回答
2

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

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

于 2010-01-18T18:50:32.193 回答