簡體   English   中英

java模式在文本之間查找html標記

[英]java pattern find html tag between text

我想找到'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));
}

但它不會打印任何東西。

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));
    }

用於此類任務的首選工具是HTML或XML解析器(更多信息您能提供一些示例,說明為什么難以使用正則表達式解析XML和HTML? )。 我喜歡使用的一個更簡單的解析器是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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM