解决方案: 这有效:
String p="<pre>[\\\\w\\\\W]*</pre>";
我想匹配并捕获
标记的封闭内容 尝试了以下方法,不起作用,出了什么问题?String p="<pre>.*</pre>"; Matcher m=Pattern.compile(p,Pattern.MULTILINE|Pattern.CASE_INSENSITIVE).matcher(input); if(m.find()){ String g=m.group(0); System.out.println("g is "+g); }
最佳答案
正则表达式实际上是 not正确的工具。使用解析器。 Jsoup是一个不错的。
Document document = Jsoup.parse(html);
for (Element element : document.getElementsByTag("pre")) {
System.out.println(element.text());
}
顺便说一句,parse()
方法还可以采用 URL
或 File
。
我推荐 Jsoup 的原因是它是我尝试过的所有 HTML 解析器中最不冗长的。它不仅提供类似 JavaScript 的方法返回实现 Iterable
的元素,而且还支持 jQuery like selectors这对我来说是一个很大的优点。
关于java 正则表达式匹配html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2792401/