[英]Convert SGML to XML with regex?
我想使用regrex將SGML轉換為XML。 喜歡:
兌換:
<a><ab><abc>111<abc2>222</ab></a>
至:
<a><ab><abc>111</abc><abc2>222</abc2></ab></a>
我編寫以下代碼進行轉換:
String a = "<a><ab><abc>abc<abc2>abc2</ab></a>";
a = a.replaceAll("<([^<>]+?)>([^<>]+?)<(?!/\\$1>)", "<$1>$2</$1><");
System.out.println(a);
但是結果不是預期的:
<a><ab><abc>111</abc><abc2>222</ab></a>
我的問題是,可以用正則表達式進行轉換嗎? 如果是,我的代碼有什么問題?
使用以下正則表達式
<(([^<>]+?)>)([^<>]+?)(?=<(?!\1))
然后將匹配項替換為
<$1$3</$2>
https://regex101.com/r/cD1nC8/1
String s = "<a><ab><abc>111<abc2>222</ab></a>";
System.out.println(s.replaceAll("<(([^<>]+?)>)([^<>]+?)(?=<(?!\\1))", "<$1$3</$2>"));
輸出:
<a><ab><abc>111</abc><abc2>222</abc2></ab></a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.