我需要用正則表達式去除標籤「image」。用正則表達式去掉xml標籤
我與C#.NET的
例如<rrr><image from="91524" to="92505" /></rrr>
應該變成:
<rrr></rrr>
任何???
我需要用正則表達式去除標籤「image」。用正則表達式去掉xml標籤
我與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解決方案如此簡單併爲您完成所有這些工作時,花費時間改進正則表達式解決方案來處理所有特殊情況並不值得。
試試這個:
<image[^>]*>
即使XML是非常正常和患有惡法「驗證或死亡」的政策,this Stack Overflow question將被證明很受啓發。
正則表達式是強大的 - 但在.NET中的XML工具對完成這一任務更好,因爲它們被設計來處理這樣的事情。您可以根據其結構操縱XML ,這是Regexes無法執行的操作,因爲他們將XML視爲文本。
XML是文字,但它是文本與特定的結構。利用已知的質量。
爲什麼你需要使用正則表達式? – Skilldrick 2010-02-18 16:35:46