0

Span タグの html 文字列を削除したい。

私はhtml文字列を持っています:

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

私はそれを次のように取り除く必要があります: Roskilde Festival.

Atm、すべてのスパンタグを見つけることができるはずの正規表現文字列がありますが、失敗します

 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;");                                                              

何か案は?

PS私はHtml Agility Packを使いたくありません

4

1 に答える 1

3

正規表現は、HTML を処理する最良の方法ではありません。Regexp は HTML のネストを理解しないため、ネストを理解する HTML パーサーを使用してください。

逆文字セットを見ることを検討してください。<whatever[^>]*>

そして、これをどこかからコピーしたと思いますが、あなたの正規表現はおそらく適切な C# 構文ではありません (extra /and /g)。C# チュートリアルで正規表現を読み直してください! この文字列を試してください:

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

おそらく使用するつもりだったのは次のとおりです。

sc.Add(@"</?span( [^>]*|/)?>");
于 2012-07-08T14:41:51.937 に答える