2013-12-22 78 views
3

如何刪除字符串中的註釋塊。這是我想要刪除的字符串的一部分。從C#中的字符串中刪除註釋塊<!-- -->

<!-- 
[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif] 

--> 
+2

的你最好添加你做了什麼。 – herohuyongtao

+0

我想找到一個正則表達式來刪除這段評論之間的內容。但到現在爲止我還沒有找到任何東西,它工作正常。 myString = Regex.Replace(myString,@「(?s)(?<= <! - )。+?(?= - >)」,「」).Trim(); – Azade

回答

3

我發現了一個正則表達式來去除這種註釋塊

myString = Regex.Replace(myString , @"(?s)(?<=<!--).+?(?=-->)", "") 
1

簡單,只要找到其中註釋開始(與<!--),並在那裏結束(-->)。然後在範圍內刪除它們。

+0

這是很多文字處理。我需要一個正則表達式或東西 – Azade

1

在這些情況下,我會建議你使用外部的lib如的「HTML敏捷性包」 http://htmlagilitypack.codeplex.com/ 這是他們的CodePlex網站頁面上通過的NuGet & availble的,你會在houw找到代碼示例使用圖書館。

它將使您能夠在C#中加載html模型。通過這種方式,你可以抽出你不需要的東西,或者操縱某些標籤等等。甚至,比如你的情況,在html-doc中提取註釋。我沒有準確的代碼片段,但您可以使用此庫快速處理它。

自己這樣做,即使使用REGEX,也需要耗費大量的時間,並且一開始就會出錯。看看它是這樣的:不要重新發明輪子;)。

+1

謝謝。這是一個很好的圖書館。但我認爲這對我的問題太過分了。我找到了一個更簡單的方法,併發布爲答案。 – Azade

+0

好吧,我明白,對於有限的字符串,可以通過正則表達式來完成..我假設你有一大堆場景,你指出的只是一大堆樣本。在這種情況下,我猜的確實是正則表達式。 –