我想知道如何删除任何超链接< a>来自某些文本中的标签 - 整个批次包括文本/图像在结束之前链接的任何内容< / a>标签。
E.g。
<a href="http://stackoverflow.com">Click here</a>
<a href="http://stackoverflow.com"><img src="http://stackoverflow.com" alt = "blah"></a>
即。删除整个。
任何想法如何做到这一点?
由于
答案 0 :(得分:1)
强制性“不要使用正则表达式解析html”警告:RegEx match open tags except XHTML self-contained tags
我建议转换为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");
答案 1 :(得分:0)
根据我的理解,这应该有用
string linksRemoved = Regex.Replace(withLinks, @"</?(a|A).*>", "");
答案 2 :(得分:0)
您可以尝试使用正则表达式来替换标记。我的正则表达不是最好的,但这应该让你接近。
System.Text.RegularExpressions.Regex.Replace(
input,
@"<a[^>]*?>.*?</a>",
string.Empty);