This article mainly introduces the relevant information of C# retrieval case-insensitive and highlighted examples. Friends in need can refer to
C# retrieval insensitive Detailed explanation of case and highlight display examples
Today, I encountered a problem: How to highlight case-insensitive keywords in a web page
For example: text abcaBcabCaBCabcaBCa, keyword bc, in case of insensitivity, there are 6 matches in total.
What is displayed on the web page is abcaBcabCaBCabcaBCa.
Many people think of the replace function. But in c# the replace function cannot solve the letter case problem.
For example, bc, Bc, bC, and BC have all been searched, but they cannot be replaced by a single text.
The above text is reproduced from the article of Daniel "Wancang Yimi" - -"Highlight case-insensitive keywords - ASP".
But his article was written in the ASP version, and today I am writing the C# version; let’s talk about the solution below.
Solution: Use IndexOf
## ''''''''''''''''''''''''‑‑‑‑‑‑‐‐‐‐‐‐‐‐‐‐‐‐‐ The index of the first occurrence in the object. Parameters
value 类型: System. String 要搜寻的字符串。 startIndex 类型: System. Int32 搜索起始位置。 comparisonType 类型: System. StringComparison 指定搜索规则的枚举值之一。 (OrdinalIgnoreCase:使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。)
Code
/// <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; }
The above is the detailed content of C# implements case-insensitive retrieval and highlighting sample code sharing. For more information, please follow other related articles on the PHP Chinese website!