使用REGEX将纯链接替换为纯文本URL

时间:2011-12-07 12:31:01

标签: c# asp.net html regex email

我正在从我的应用程序发送电子邮件。它主要是html格式,我正在使用正则表达式去除纯文本替换视图的html标记(使用@"<(.|\n)*?>")。我想用纯文本替换<a>超链接标记href地址的版本。

我似乎只能找到有关转换其他方式的信息。

2 个答案:

答案 0 :(得分:1)

如果您只想用href值替换a标签并假设href值为“”,则这是正则表达式:

<a[^/>]*href="([^"]*)"/?>

和替换正则表达式:

$1

答案 1 :(得分:0)

Regex reg=new Regex(@"<a[^>]*href=["]*(?<link>[^\s>"]+)["]*\s*(?:(?:/>)|(?:>[^>]*)>)");
mail.Body=reg.Replace(mail.Body, new MatchEvaluator(delegate(Match m)
{
return m.Groups["link"].Value;
}

也许邮件客户端会自动将纯文本转换为超链接,这样做

return m.Groups["link"].Value.Replace("http://","");