JeHowSing's .Net Home

Nothing is impossible !

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

由于要做个类似GoogleSearch的东西,所以检索词标红是必须的.无奈下看了下正则表达式和Regex类,发现真的很好用.
原本打算就是可以利用String.Replace()方法实现替代下关键词,添加些HTML代码就可以实现,但是发现结果是检索什么东西,就输入的检索词一摸一样的标红了,要不就是把所有大小写一样的都改成了输入的检索词.比如:
比如CHINA,结果是把china都改成CHINA并且标红了,相反也一样,即使是添加
//    title = title.Replace(Searchword.ToLower(),biaohong(Searchword).ToLower());
//    title = title.Replace(Searchword.ToUpper(),biaohong(Searchword).ToUpper());
虽然可以实现CHINA,china都可以标红,但是更大的问题出现了,China这么词却变不了.所以就引用了些正则表达式的东东来做标红了~~

首先要添加引用using System.Text.RegularExpressions;
然后在.aspx文件内添加一个CSS,比如
<STYLE type=text/css>
.Biaohong{color:red;}
</STYLE>

然后在.cs文件内:
比如你想控制标红的文本集合或者数据集合是Title,如果不是文本转下就可以.
然后:
关键词是变量Keyword
RegexOptions.IgnoreCase是是否区分大小写的参数
System.Text.RegularExpressions.MatchCollection match = Regex.Matches(Title,Keyword,RegexOptions.IgnoreCase);
    for(int i=0;i<match.Count;i++)//循环在匹配的关键词前后插东东
    {
     title=title.Insert((match[i].Index+Keyword.Length+i*31),"</span>");//关键词后插入html标签
     title=title.Insert((match[i].Index+i*31),"<span class=\"Biaohong\">");//关键词前插入html标签
    }

posted on 2007-04-29 09:12  JeHowSing  阅读(1180)  评论(0编辑  收藏  举报