C# 检索不辨别大小写并高亮显现实例详解
本日,遇到一个题目:怎样在网页中高亮显现不辨别大小写的关键字
比方:文本abcaBcabCaBCabcaBCa,关键字bc,在不辨别大小写的状况,一共有6个婚配项。
则在网页中显现的是abcaBcabCaBCabcaBCa。
很多人,想到是replace函数。然则在c# 中replace函数没法处理字母大小写题目。
比方示例上看,bc,Bc,bC,BC都被搜刮到了,却不能一致替换为一个文本
以上笔墨转自大牛“万仓一黍“的文章--”高亮显现不辨别大小写的关键字——ASP“。
然则他的文章写得是ASP版本,本日我写得是C#版本;下面说说处理办法。
处理办法:应用 IndexOf
IndexOf(String, Int32, StringComparison)
指定的字符串在当前 String 对象中的第一个婚配项的索引。
参数
value 范例: System. String 要征采的字符串。 startIndex 范例: System. Int32 搜刮肇端位置。 comparisonType 范例: System. StringComparison 指定搜刮划定规矩的罗列值之一。 (OrdinalIgnoreCase:运用序号排序划定规矩并疏忽被比较字符串的大小写,对字符串举行比较。)
代码
/// <summary> /// 高亮查找关键字。 /// </summary> /// <param name="str">文本。</param> /// <param name="keyword">关键字</param> /// <returns>含高亮标识的文本。</returns> /// <remarks> /// 1、字母不辨别大小写。 /// 2、CssClass 名称为 highlight。 /// </remarks> private string HighLightKeyword(string str, string keyword) { int index; var startIndex = 0; const string highLightBegin = "<span class='highlight'>"; const string highLightEnd = "</span>"; var length = highLightBegin.Length + keyword.Length; var lengthHighlight = length + highLightEnd.Length; while ((index = str.IndexOf(keyword, startIndex, StringComparison.OrdinalIgnoreCase)) > -1) { str = str.Insert(index, highLightBegin).Insert(index + length, highLightEnd); startIndex = index + lengthHighlight; } return str; }
以上就是C#完成检索不辨别大小写并高亮显现的示例代码分享的细致内容,更多请关注ki4网别的相干文章!