Lai*_*Lai 0 c# regex xml replace
我需要用正则表达式删除标签"image".
我正在使用C#.Net
例子<rrr><image from="91524" to="92505" /></rrr>应该成为:
<rrr></rrr>
Run Code Online (Sandbox Code Playgroud)
任何人???
你不应该真正使用正则表达式来完成这项任务,特别是当.NET提供如此强大的工具来处理XML时:
XElement xml = XElement.Parse("<rrr><image from=\"91524\" to=\"92505\" /></rrr>");
xml.Descendants("image").Remove();
Run Code Online (Sandbox Code Playgroud)
但是如果你坚持用正则表达式做这个,那么让我们看看会发生什么:
string xml = "<rrr><image from=\"91524\" to=\"92505\" /></rrr>";
string output = Regex.Replace(xml, "<image.*?>", "");
Run Code Online (Sandbox Code Playgroud)
虽然第一种方法适合您,但这种方法存在一些问题.示例问题:
> 属性中的字符可能会混淆正则表达式.<image2 />.<image />和<image></image>.其中一些很容易修复,有些更棘手.但最终,当LINQ to XML解决方案如此简单并为您完成所有这些时,不值得花时间改进正则表达式解决方案来处理所有特殊情况.