2011-11-03 56 views
-2

通過所見即所得的文本編輯器插入跨度標籤與一類「評論」。我想從一個字符串C#刪除跨度標籤我插入

所以刪除其內容的跨度標籤的任何情況下,我如何從這裏得到:

string content = "<p>sadf<span class="otherclass"><span class="comment">asdfsdafsdafsadfsdf</span></span></p>"; 

到這裏:

content = "<p>sadf<span class="otherclass"></span></p>"; 

我瞭解HTMLAgilityPack但不想增加我控制的HTML的開銷。我推薦使用正則表達式解決方案。

編輯:我只想刪除與「評論」類跨度。

+3

爲什麼你認爲它的開銷增加旨在解決您有問題庫?這是一個非常普遍的事實,即正則表達式不適合解析HTML,因爲它不能保證格式正確。 – Jason

+0

我認爲不好的做法應該延續下去,因爲這些標準是量身定做的,因此被迫。 –

+0

因爲這看起來像是一個切割和乾燥的正則表達式解決方案。兩個span標籤之間不會有「comment」類的HTML,只有文本。正則表達式我不太好。假裝它不是HTML。 – Dzejms

回答

1

不足答案:

content = Regex.Replace(content, @"<span\s+class=""comment"">.*?</span>", ""); 
+0

不錯。我錯過了那裏的其他班級 – CBRRacer

+0

一般來說,正則表達式不足以滿足這些目的。 – BLUEPIXY

+0

結束使用「。+?」但感謝您的幫助。 – Dzejms

0

過濾你的字符串的正則表達式將是<span\s+class=\"comment.*?span>你可能有興趣嘗試RegexBuddy。它幫助我很好地理解了我的正則表達式。

趕上正則表達式爲字符串的替換字符串對你string content

編輯後,我意識到,你需要只是刪除<span class="comment"></span>像BLUEPIXY一樣。