在搜索关键词高亮中一般的方法都是采用替换的办法(Replace)这个方法有一个缺点就是不能区分大小写的问题。在网上找了找发现有人用正则表达式的方法来解决这个问题还真不错,效率也比较高,归纳如下,有用得到的朋友可以一试。
//搜索关键词高亮显示函数 public static string HighLightKeyWord(string pain,string keyword) {
//搜索关键词高亮函数By JN 2006.11.30 System.Text.RegularExpressions.MatchCollection m = Regex.Matches(pain, keyword, RegexOptions.IgnoreCase); //忽略大小写搜索字符串中的关键字 for (int j = 0; j < m.Count; j++)//循环在匹配的子串前后插东东 { //j×31为插入html标签使pain字符串增加的长度: pain = pain.Insert((m[j].Index + keyword.Length + j * 31), "</font>");//关键字后插入html标签 pain = pain.Insert((m[j].Index + j * 31), "<font color=#ff0000>");//关键字前插入html标签 }
//搜索关键词高亮函数By JN 2006.11.30 return pain; }
当然用之前引用先:using System.Web.UI.HtmlControls;
还有:using System.Text.RegularExpressions;(小鱼加)
以上代码有问题:同一句中有多个关键字时出问题
试一下这个先
/// <summary> /// 替换关键字为红色 /// </summary> /// <param name="keycontent">原始内容</param> /// <param name="k">关键字,支持多关键字</param> /// <returns>String</returns> /// <author>haver Guo</author> public static string Highlightkeywords(string keycontent, string k) { string resultstr = keycontent; if (k.Trim().IndexOf(' ') > 0) { string[] myArray = k.Split(' '); for (int i = 0; i < myArray.Length; i++) { resultstr = resultstr.Replace(myArray[i].ToString(), "<font color=#FF0000>" + myArray[i].ToString() + "</font>"); } return resultstr; } else { return resultstr.Replace(k, "<font color=#FF0000>" + k + "</font>"); } } 经测,可用
public static string red(string theField, string fkeywords)
{
string red;
red = theField.Replace(fkeywords,
"<font color=\"red\">" + fkeywords + "</font>");
return red;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2011-01-15 Fusioncharts的数字格式化(转)
2009-01-15 sql中datepart和datename函数
2009-01-15 基姆拉尔森计算公式(C#方法转换日期为星期几)
2008-01-15 .NET Framework 概念概述