[英]How remove empty tags in Regex?
我想刪除一些空標簽,例如<A/>
, <B/>
, <C/>
,....
如何使用正則表達式刪除這些標簽?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HelloWorld{
public static void main(String[] args) {
final String regex1 = "<([a-zA-Z0-9-\\_]*)[^>]*/>";
final String regex2 = "<([a-zA-Z0-9-\\_]*)[^>]*>\\s*</\\1>";
String xmlString = " <xml><A>bla</A><B></B><B/><D><E><G><H/></G></E><F></F></D></xml>";
System.out.println(xmlString);
final Pattern pattern1 = Pattern.compile(regex1);
final Pattern pattern2 = Pattern.compile(regex2);
Matcher matcher1;
Matcher matcher2;
do {
xmlString = xmlString.replaceAll(regex1, "").replaceAll(regex2, "");
matcher1 = pattern1.matcher(xmlString);
matcher2 = pattern2.matcher(xmlString);
} while (matcher1.find() || matcher2.find());
System.out.println(xmlString);
}
}
安慰:
<xml>
<A>bla</A>
<B></B>
<B/>
<D>
<E>
<G>
<H/>
</G>
</E>
<F></F>
</D>
</xml>
<xml>
<A>bla</A>
</xml>
試試這個正則表達式:
/<[^\/>][^>]*><\/[^>]+>/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.