在html标签之间获取文本

时间:2010-01-18 18:48:20

标签: java regex matcher

  

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

我需要在像<p></p>这样的html标签之间获取文本。我的模式是这个

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

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

由于

3 个答案:

答案 0 :(得分:5)

即将降临在你身上。但是让我成为第一个说,不要使用正则表达式来解析HTML。 Here是Java HTML Parsers的列表。环顾四周,直到你看到一个适合你的幻想的API,然后使用它。

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

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

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