3

我想知道如何从一些文本中去除任何超链接 < a > 标签 - 包括文本/图像在内的所有内容,无论是在结束 </ a > 标签之前链接的任何内容。

例如

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

IE。删除全部。

任何想法如何做到这一点?

谢谢

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 回答