Maison > Article > développement back-end > C# implémente la récupération insensible à la casse et met en évidence le partage d'exemples de code
Cet article présente principalement les informations pertinentes sur la récupération C# insensible à la casse et les exemples surlignés, les amis dans le besoin peuvent se référer à
Récupération C# insensible Explication détaillée de la casse et de la surbrillance exemples
Aujourd'hui, j'ai rencontré un problème : Comment mettre en avant des mots-clés insensibles à la casse dans une page web
Par exemple : texte abcaBcabCaBCabcaBCa, mot-clé bc, en cas d'insensibilité, il y a 6 matchs au total.
Ensuite, ce qui est affiché sur la page Web est abcaBcabCaBCabcaBCa.
Beaucoup de gens pensent à la fonction de remplacement. Mais en C#, la fonction de remplacement ne peut pas résoudre le problème de la casse des lettres.
Par exemple, bc, Bc, bC et BC ont tous été recherchés, mais ils ne peuvent pas être remplacés par un seul texte
Le texte ci-dessus est reproduit de l'article de Daniel "Wancang Yimi " - -"Mettez en surbrillance les mots-clés insensibles à la casse - ASP".
Mais son article a été écrit dans la version ASP, et aujourd'hui j'écris la version C#, parlons de la solution ci-dessous ;
Solution : Utiliser IndexOf
IndexOf(String, Int32, StringComparison)
La chaîne spécifiée se trouve dans la chaîne actuelle L'index de la première occurrence dans l'objet.
Paramètres
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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!