可能重复:RegEx matching HTML tags and extracting text得到html标签之间的文本
我需要得到像<p></p>
或任何HTML标记之间的文本。我的模式是这样的
Pattern pText = Pattern.compile(">([^>|^<]*?)<");
任何人都知道一些更好的模式,因为这其中不是很有用。我需要它从网页获取索引内容。
谢谢
可能重复:RegEx matching HTML tags and extracting text得到html标签之间的文本
我需要得到像<p></p>
或任何HTML标记之间的文本。我的模式是这样的
Pattern pText = Pattern.compile(">([^>|^<]*?)<");
任何人都知道一些更好的模式,因为这其中不是很有用。我需要它从网页获取索引内容。
谢谢
SO即将降临在你身上。但让我成为第一个说,不要使用正则表达式来解析HTML。 Here是一个Java的HTML解析器的列表。看看,直到你看到一个适合你的想法的API并使用它。
TagSoup特别美味,如果你有sl HTML的HTML担心。 – bmargulies 2010-01-18 18:52:34
解析HTML时不要使用正则表达式。
改为使用XPath(如果您的HTML格式正确)。您可以很容易地使用text()
函数来引用文本节点。
看起来您正尝试在否定集内使用|
运算符,该运算符既不工作也不需要。只需指定你不想匹配的字符:
Pattern pText = Pattern.compile(">([^<>]*?)<");
在你的情况中,正则表达式可能没问题,但你有没有读过这个? http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – 2010-01-18 18:49:32
应该有一个选项*投票关闭:用户正在解析HTML与正则表达式* – 2010-01-18 18:54:55