我有这个示例字符串:
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。
我怎样才能最好地完成这项任务?
答案 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;