如何多次提取标记内容?

时间:2016-10-03 07:48:14

标签: java

我有一个代码将String视为一个标记并将所有内容解压缩。在这种情况下:" abc< / a> &LT a取代; DEF" 即可。如何从标签中分离提取以获得两个字符串:" abc"和" def"?

public static void main(String[] args) throws Exception {
    Ex.findInTags("<a>((.*))</a>", "<a>abc</a> <a>def</a>");
}
public static void findInTags(String a, String b) {
    Pattern pattern = Pattern.compile(a);
    Matcher matcher = pattern.matcher(b);
    if (matcher.find()) {
        System.out.println(matcher.group(1));
    }
}

1 个答案:

答案 0 :(得分:2)

请勿使用正则表达式解析XML / HTML,因为这些不是常规语言,因此无法使用正则表达式。使用XPath(适用于XML)或Jsoup(HTML)

等专用工具

Jsoup.parse("<a>abc</a> <a>def</a>").select("a")

将为您提供所有a元素,您可以迭代它并从每个节点获取所需的文本。