[英]removing xml tag with regex
我需要使用正則表達式刪除標簽“ image”。
我正在使用C#.Net
示例<rrr><image from="91524" to="92505" /></rrr>
應該變為:
<rrr></rrr>
任何人???
您實際上不應該使用正則表達式來完成此任務,尤其是當.NET提供了如此強大的工具來處理XML時:
XElement xml = XElement.Parse("<rrr><image from=\"91524\" to=\"92505\" /></rrr>");
xml.Descendants("image").Remove();
但是,如果您堅持使用正則表達式執行此操作,讓我們看看會發生什么:
string xml = "<rrr><image from=\"91524\" to=\"92505\" /></rrr>";
string output = Regex.Replace(xml, "<image.*?>", "");
盡管第一種方法可以解決您的問題,但該方法仍存在一些問題。 問題示例:
>
屬性中的字符會混淆正則表達式。 <image2 />
不正確匹配。 <image />
和<image></image>
。 其中有些很容易修復,有些則比較棘手。 但是最后,當LINQ to XML解決方案非常簡單並為您完成所有這些工作時,花時間改進正則表達式解決方案來處理所有特殊情況是不值得的。
即使XML是非常常規的,並且受到嚴酷的“驗證或死亡”策略的困擾,但這個Stack Overflow問題仍將非常有啟發性。
正則表達式功能強大-但.NET中的XML工具更適合此任務,因為它們旨在處理此類事情。 您可以根據XML 的結構來操作XML,這是Regexes無法執行的,因為它們將XML視為文本。
XML是文本,但是它是具有特定結構的文本。 利用這種已知的質量。
嘗試這個:
<image[^>]*>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.