3

ハイパーリンク < a > タグを一部のテキスト内から削除する方法を知りたいと思っています-終了</ a >タグの前にリンクされているテキスト/画像を含む全体。

例えば

<a href="http://stackoverflow.com">Click here</a>        
<a href="http://stackoverflow.com"><img src="http://stackoverflow.com" alt = "blah"></a>

すなわち。全体を取り除きます。

これを行う方法はありますか?

ありがとう

4

3 に答える 3

1

必須の「html の解析に正規表現を使用しないでください」警告: 正規表現は、XHTML 自己完結型タグを除く開始タグに一致します

これを行うには、XHTML に変換して xPath を使用するか、HTMLAgilityPackを参照することをお勧めします。過去にhtmlの解析/変更に両方の方法を使用しましたが、正規表現を使用するよりもはるかに柔軟/堅牢です。

HtmlAgilityPack の使用を開始するための例を次に示します。

 HtmlDocument doc = new HtmlDocument();
 doc.Load("file.htm");
 foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href]")
 {
    // Do stuff!
 }
 doc.Save("file.htm");
于 2013-06-24T18:32:30.563 に答える
0

私が理解していることから、これはうまくいくはずです

string linksRemoved = Regex.Replace(withLinks, @"</?(a|A).*>", "");
于 2013-06-24T18:30:36.173 に答える
0

タグを置き換える正規表現を試すことができます。私の正規表現は最高ではありませんが、これで近づくはずです。

System.Text.RegularExpressions.Regex.Replace(
     input, 
     @"<a[^>]*?>.*?</a>", 
     string.Empty);
于 2013-06-24T18:30:43.487 に答える