我想剥离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, @" ", @" ");
任何想法?
P.S。我不想使用Html Agility Pack
答案 0 :(得分:3)
Regexp不是处理HTML的最佳方式。使用理解嵌套的HTML解析器,因为Regexp不理解HTML嵌套。
考虑查看反向字符集,即<whatever[^>]*>
我想你是从某个地方复制了这个,但你的正则表达式可能不是正确的C#语法(额外/
和/g
)。在C#教程中重读正则表达式!试试这个字符串:
Example /<span>/g does this tag get removed?
你可能想要使用的是:
sc.Add(@"</?span( [^>]*|/)?>");