Regex Strip Span标签完全

时间:2012-07-08 14:31:29

标签: c# regex

我想剥离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

1 个答案:

答案 0 :(得分:3)

Regexp不是处理HTML的最佳方式。使用理解嵌套的HTML解析器,因为Regexp不理解HTML嵌套。

考虑查看反向字符集,即<whatever[^>]*>

我想你是从某个地方复制了这个,但你的正则表达式可能不是正确的C#语法(额外//g)。在C#教程中重读正则表达式!试试这个字符串:

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

你可能想要使用的是:

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