2013-09-25 116 views
-1
<br style="color: #252525">testing 1</br> 
<span style="color: font-family: Verdana">testing 2</span> 



Dim RegExStr As String = "</?span.*?>" 

它應該刪除沒有文本的完整跨度,但我只想刪除樣式。Vb.net正則表達式 - 從字符串中刪除html標記

<br>testing</br> 
<span>testing 2</span> 

請幫助解決這個問題,

+1

規則1,不要使用RegEx解析HTML。規則2,如果您想使用RegEx解析HTML,請參閱規則1 – freefaller

+0

您如何使用此正則表達式? – Jerry

+0

如果您只知道HTML始終是格式良好的XML,那麼這對於XSLT來說將是一個很好的應用程序。 –

回答

0

使用此正則表達式替換

(?<=<span[^<>]+)style="[^"]*"(?=[^<>]+>)|</span[^<>]*> 

雖然你應該使用一個HTML解析器,或者您也可以與DOM交互和刪除樣式..取決於您的要求和您正在創建的內容

0

Freefaller已經說過最重要的規則:不要使用RegEx來操縱Html。一些偉大的思想爲我們開發了HtmlAgilityPack,這使得RegEx的工作方式更好,並且可讀性更高。

我不能夠VB.net,但代碼將類似於此:

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//span")) 
{ 
    node.ParentNode.RemoveChild(node); 
} 

有關HtmlAgilityPack文章一個更爲全面的概述訪問: How to use HTML Agility pack

親切的問候

相關問題