C# implémente la récupération insensible à la casse et met en évidence le partage d'exemples de code

黄舟
Libérer: 2017-03-28 11:45:49
original
1716 Les gens l'ont consulté

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:使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。)
Copier après la connexion

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=&#39;highlight&#39;>";
      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;
    }
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal