正则表达式匹配新行使用正则表达式java?
我喜欢使用正则表达式获取html内容。我有问题,当内容写在多行。没有找到匹配项。下面是我使用的正则表达式:
String regExpContent = "<div class=\"views-field views-field-body\">(\\s+)<span class=\"field-content\">([\\:\\,\\w\\s\\.\\„\\”\\-\\(\\)0123456789( )(\r?\n)]+)</span>(\\s+)</div>";
Pattern regExpMatcherContent = Pattern.compile(regExpContent,
Pattern.DOTALL | Pattern.UNICODE_CHARACTER_CLASS);
我使用(\r?\n)
来匹配新行。有人能帮我吗
# 1 楼答案
问题是,您正在使用正则表达式解析html。你应该使用html parser
回答你的问题
你的
Pattern.DOTALL
是多余的,因为你没有在正则表达式的任何地方使用.
正则表达式中的
\s
将匹配换行符,因为它类似于[\r\n\t ]
问题在于你的
[\\:\\,\\w\\s\\.\\„\\”\\-\\(\\)0123456789( )(\r?\n)]+
。。它应该([:,\\w\\s.„”()-]| )+