2012-07-08 20 views
0

我想剝離Span標籤的html字符串。正則表達式完全標籤標籤

我有一個HTML字符串:

<a href=\"http://www.dr.dk/roskilde\"><span>Roskilde</span><span>Festival</span></a> 

我需要剝去它歸結爲:羅斯基勒音樂節。

ATM,我應該能夠找到的所有span標籤正則表達式的字符串,但其未能

System.Collections.Specialized.StringCollection sc = new System.Collections.Specialized.StringCollection(); 

    sc.Add(@"/<\s*\/?\s*span\s*.*?>/g"); 


    foreach (string s in sc) 
    { 
     k = System.Text.RegularExpressions.Regex.Replace(pContent, s, "", System.Text.RegularExpressions.RegexOptions.IgnoreCase); 
    } 
    k = System.Text.RegularExpressions.Regex.Replace(pContent, @"&nbsp;", @"&#160;");                

什麼想法?

P.S.我不想使用Html Agility Pack

+4

使用HTML敏捷性包。 – Ryan 2012-07-08 14:33:21

+0

您能否考慮用   替換? – 2012-07-08 14:33:52

+1

爲什麼你不想使用HTML Agility Pack? – 2012-07-08 15:03:32

回答

3

正則表達式不是處理HTML的最佳方式。使用理解嵌套的HTML解析器,因爲Regexp不理解HTML嵌套。

考慮尋找反字符集,即<whatever[^>]*>

而且我猜你從什麼地方抄這個,但你的正則表達式可能是不正確的C#語法(額外//g)。在C#教程中重讀一個正則表達式!試試這個字符串:

Example /<span>/g does this tag get removed? 

你可能想用的是什麼:

sc.Add(@"</?span([^>]*|/)?>");