替换mailto-links

时间:2012-07-01 11:07:02

标签: c# html

我有这个示例字符串:

var content = "Lorem ipsum dolor sit amet <a href=\"mailto:info@xxx.com\">info@xxx.com</a> ipsum dolor <a href=\"mailto:info@yyy.eu\">info@yyy.eu</a> adipiscing elit.";

当字符串包含mailto-link时,我想替换(操纵)所有出现的a-tag。

锚点应该在操纵后看起来像:

<a href="#" title="protected">in..@xxx.com</a>

内容字符串可以包含任意数量的mailto-links。

我怎样才能最好地完成这项任务?

2 个答案:

答案 0 :(得分:2)

如果你有XHTML,那么就像Chuck所示使用XElement。

如果没有,那么正则表达式就是你要走的路。类似的东西:

Regex find = new Regex("<a\\b[^>]*href=['\"]mailto:(.*?)['\"]", RegexOptions.Singleline | RegexOptions.IgnoreCase);

警告,我没有测试上面的代码,但我99%确定它是正确的。此外,我可能错过了一个角落案例,例如&gt;在电子邮件地址。

答案 1 :(得分:0)

将内容转换为XML,然后只搜索包含以a

开头的href的{​​{1}}代码

您需要使用XPath:mailto:

using System.Xml.XPath;