文章正文内容关键字按条件加链接

ly04405 2015-01-26 08:46:53
我们的网站页面上要实现这样的功能,在输出文章正文content的时候,要对content里的关键字给加上对应的链接,也就是一个替换,如:把“百度网”替换为"<a href='http://www.baidu.com'>百度网</a>"
但是有几个限制:
1.只替换第一次出现的词,之后再出现的话不替换。这个按道理也不难,就是一句话 content = reg.replace(content, "<a href='http://www.baidu.com'>百度网</a>", 1);
2.可能出现这种情况,百度网是一个词,百度是另一个词,那就替换“百度网”,只有其它位置百度两个字单独第一次出现时才替换。
我是这样写的。如“百度网的网站标题是百度一下”,那么替换后的结果应该是:“<a>百度网</a>的网站标题是<a>百度</a>一下”,而不是“<a><a>百度</a>网</a>的网站标题是百度一下”。
我是这样写的
// list是读出来的要替换的关键字与URL的对应列表
foreach(var s in list)
{
Regex reg = new Regex(@"(<([^a])(?\s+ .*)*>.*)" + s.Key + @"(.*</\2>)");
content = reg.Replace(content, "$1<a target=\"_view_link\" href=\"" + s.Url + "\">"+ s.Key+"</a>$3", 1);
}
但是它替换的不是第一次出现的。
高手们帮我瞧瞧问题出在哪儿了呢?
...全文
100 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ly04405 2015-01-26
  • 打赏
  • 举报
回复


为什么匹配的是最后一次出现的而不是第一次出现的?要匹配第一次出现的项该怎么写?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧