Asp.net实现文章内关键词替换注:本文虽为ItStrike原创文章.转载请注明出处 现在很多网站都有文章内关键词替换功能,比如: .Net中的Asp.net 替换成 .Net中的<a href="asp.net">Asp.net</a> 本文就是教你如何实现该功能,以及实现该功能所遇到的难题,以及如何解决. 继续本文开头的例子,你可以看到,如果只是替换asp.net这个关键词,用.net是很容易实现的,如下 string test = test.Replace("Asp.net","<a href=\"asp.net\">Asp.net</a>"); 但是实际使用中,并不会那么简单,比如我们增加另一个关键词.net ,现在我们使用上述语句将会得到如下结果: <a href=".net">.Net</a>.Net中的<a href="asp.net">Asp<a href=".net">.net</a></a> 上面的结果并不是我们想要的,但为什么会这样呢?因为Asp.net包含了.Net这个关键词,所以在上面的语句实现替换时就会出现重复替换的问题. 解决的方法也不难,其实很简单,首先我们声明一个临时变量来保存文章内容,如下 string txt=".Net中的Asp.net"; string content=txt; 然后我们把关键字按照长度又长到短排序.接着进行循环处理 string txt = ".Net中的Asp.net"; 在循环体内,我们使用正则来查找关键词: Regex r = new Regex(keyword.name, RegexOptions.IgnoreCase); 我们每次查找出后,就将临时变量content里的关键词替换成等长度的*,例如查找Asp.net,替换后就是 .Net中的******* 这样,等到下次循环到.Net这个关键词时.临时变量里就没有ASP.NET这个词了,也就不会有重复替换的问题了~ 本文完~~如有问题请加群31647020询问相关问题 注:本文虽为ItStrike原创文章.转载请注明出处 |
||