我想查找文字' ABCD'在
String text = "<div class=\"aaaa\">1234</div>"
+ " <li class=\"pcs05\">ABCD</li>";
Pattern p = Pattern.compile("<li class=[^A-Za-z0-9]>(\\S+)</li>");
Matcher m = p.matcher(text);
if(m.find()){
System.out.println(m.group(1));
}
但它没有打印任何东西。
答案 0 :(得分:0)
String text = "<div class=\"aaaa\">1234</div>";
text += "<li class=\"pcs05\">ABCD</li>";
Pattern p = Pattern.compile("<li class=\"[A-Za-z0-9]+\">(\\S+)</li>");
Matcher m = p.matcher(text);
if(m.find()){
System.out.println(m.group(1));
}
答案 1 :(得分:0)
此类任务的首选工具是HTML或XML解析器(更多信息Can you provide some examples of why it is hard to parse XML and HTML with a regex?)。我喜欢使用的一个更简单的解析器是jsoup。关于它的好处是它支持CSS查询语法。
所以你的代码看起来像:
String text = "<div class=\"aaaa\">1234</div>"
+ " <li class=\"pcs05\">ABCD</li>";
Document doc = Jsoup.parse(text);
String liValue = doc.select("li").text();
System.out.println(liValue);
输出:ABCD