zoukankan      html  css  js  c++  java
  • C#中搜索关键词高亮显示函数

    在搜索关键词高亮中一般的方法都是采用替换的办法(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>");
                }
            }
     经测,可用

  • 相关阅读:
    20145229&20145316 《信息安全系统设计基础》 实验二 固件设计
    20145207 《Java 程序设计》实验三 (敏捷开发与XP实践)实验报告
    《Java 程序设计》课堂实践项目-mini dc
    20145207 《Java程序设计》第10周学习总结
    《Java 程序设计》课堂实践项目-命令行参数
    20145207 实验二《Java面向对象程序设计》实验报告
    20145207《Java程序设计》第9周学习总结
    20145207信息搜集与漏洞扫描
    20145207《Java程序设计》实验二(Java面向对象程序设计)实验报告
    20145207李祉昂《网络对抗技术》可选实验 shellcode注入与Return-to-libc攻击实验
  • 原文地址:https://www.cnblogs.com/0000/p/1516255.html
Copyright © 2011-2022 走看看