从文本中删除超链接但保留锚文本

时间:2011-04-07 20:45:36

标签: c# regex

我需要从文本正文中删除链接标记,但保留锚文本。例如:

<a href ="">AnchorText</a>

需要变得公正:

AnchorText

我正在考虑使用以下RegEx:

<(.{0}|/)(a|A).*?>

RegEx是最好的解决方法吗?如果是这样,上述RegEx模式是否足够?如果RegEx不是要走的路,那么什么是更好的解决方案?这需要在服务器端完成。

4 个答案:

答案 0 :(得分:4)

你的正则表达式将完成这项工作。你可以把它写得更简单

</?(a|A).*?>

/?表示0或1 /

但它相当于你的(.{0}|/)

答案 1 :(得分:3)

您可以使用HtmlAgilityPack

string sampleHtml = "<a href =\"\">AnchorText</a>";
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(sampleHtml);
string text = doc.DocumentNode.InnerText; //output: AnchorText

答案 2 :(得分:1)

我认为正则表达式是实现此目标的最佳方式,您的模式看起来应该可以正常工作。

答案 3 :(得分:1)

使用jQuery replaceWith:

$('a').replaceWith(function()
{
    return $('<span/>').text($(this).text());
});

假设您在客户端执行此操作。