如何更换“&lt;”和“&gt;” (在xml文件的内容中),匹配"<"
和">"
(使用预先知道的一组标签)使用正则表达式?
示例:<abc>fd<jkh</abc><def>e>e</def>
应该导致:
<abc>fd<jkh</abc><def>e<e</def>
必须用正则表达式完成! (没有xml加载等......)
答案 0 :(得分:2)
我认为模式
<([^>]*<)
将匹配在<
之前遇到另一个<
的{{1}}(因此不属于代码)
......和模式
>
将匹配另一个(>[^<]*)>
>
>
这确实有效,但你必须多次传递它。我确信这是一个更纯粹的方法,但这确实有效。
var first = Regex.Replace(@"<abc>fd<jkh</abc><def>e>e</def>",@"<([^>]*?<)",@"<$1");
var final = Regex.Replace(first,@"(>[^<]*?)>",@"$1>");
答案 1 :(得分:0)
s/<(?=[^<>]*<)/</g
s/>(?<=\>[^<>]*)/>/g
在C#中,
new Regex("<(?=[^<>]*<)").Replace(your_xml_string, "<");
new Regex(">(?<=\>[^<>]*)").Replace(your_xml_string, ">");
未经测试。我手上没有C#。