我有一个代码将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));
}
}
答案 0 :(得分:2)
请勿使用正则表达式解析XML / HTML,因为这些不是常规语言,因此无法使用正则表达式。使用XPath
(适用于XML)或Jsoup
(HTML)
Jsoup.parse("<a>abc</a> <a>def</a>").select("a")
将为您提供所有a
元素,您可以迭代它并从每个节点获取所需的文本。