正则表达式查找没有rel = nofollow的所有锚标签然后添加它

时间:2011-08-23 10:31:21

标签: c# .net asp.net regex

我们的SEO团队希望我们确保我们在论坛中发布的任何包含链接的帖子都具有rel =“nofollow”属性。

如果在发布消息时使用了我们的链接工具,我们有代码放置rel="nofollow",但我需要的是在输出每个帖子时调用的函数,以查找{的任何实例{1}}并替换为<a ...>foo</a>。显然,我想避免使用属性来处理我遇到的每个锚标记,否则我们最终会得到包含重复nofollow属性的标记。

不幸的是,我对正则表达式并不擅长,我认为这是实现它的最好方法吗?

2 个答案:

答案 0 :(得分:4)

我建议使用诸如HTML Agility Pack之类的HTML解析器来解析,查询和重新编写HTML。

请参阅here以获得令人信服的解释,为什么RegEx往往是解析HTML的坏主意。

答案 1 :(得分:0)

如果您使用的是jquery

,那么客户端非常容易
$(function(){
  $("a").attr("rel","nofollow");
});

只需要