2012-07-08 80 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([^>]*|/)?>");