zoukankan      html  css  js  c++  java
  • C#中正则表达式进行忽略大小写的字符串替换

      在C#里要进行忽略大小写的字符串替换,用string的Replace是很难做到的,即使花了天大的力气做到了,效率仍然是很低的,正确的方法应该是使用正则表达式。

      要使用正则表达式,首先需要引用命名空间:

    以下是引用片段:

      usingSystem.Text.RegularExpressions;

      然后,非常简单,使用:

    以下是引用片段:

      Regex.Replace(字符串,要替换的子串,替换子串的字符,RegexOptions.IgnoreCase)

      就可以达到目的了,其中最后的参数RegexOptions.IgnoreCase即为指明忽略大小写

      但是,我现在要为一组字符串中的所有匹配的子字符串加上高亮显示(就是让它的字体样式和字符串其它的部分不一样),用下面的语句在字符串两端插入html标签,确实可以实现高亮,但高亮显示的就成了搜索子串的搜索字符串了,大小写与原文有差异。

      打个比方:我在"第十三种Asp.net实现"中搜索的keyString为"asp",替换后的字符串就成了"第十三种 asp.net实现",而不是希望的"第十三种 Asp.net实现"

    以下是引用片段:

      DocumentResume[i]=Regex.Replace(hitDoc.Get("resume"),keyString,""+keyString+"",RegexOptions.IgnoreCase);

      所以,直接用正则表达式的Replace也不能达到我的需要,而要用到正则表达式的Match搜索方法(Match搜索单条,Matchs多条),然后在匹配的子串前后插入html标签,具体看下面的代码:

    以下是引用片段:

      stringpain=hitDoc.Get("resume");//字符串

      system.Text.RegularExpressions.MatchCollectionm=Regex.Matches(pain,keyString,RegexOptions.IgnoreCase);//忽略大小写搜索字符串中的关键字

      for(intj=0;j 

      {

      //j×31为插入html标签使pain字符串增加的长度,注意下面两句不能交换位置,否则将出现HTML标签插入错误。

      pain=pain.Insert((m[j].Index+keyString.Length+j*31),"");//关键字后插入html标签

      pain=pain.Insert((m[j].Index+j*31),"");//关键字前插入html标签

      }

      当然,html标签也不是胡乱插好了就管用的。还要在要显示这个插完后的字符串的页面代码的head区加入下面的自定义样式

    以下是引用片段:

    <STYLEtype=text/css> 

    <!--.Highlight{ 

    color:#00FFFF; 

    font-style:italic; 

    font-size:larger; 

    }--> 

    </STYLE>

      [NextPage] nutian:但正则表达式方式忽略大小写替换应该效率不是最高,但也不是最低,一般应用应该可以.

      当然,html标签也不是胡乱插好了就管用的。还要在要显示这个插完后的字符串的页面代码的head区加入下面的自定义样式

    以下是引用片段:

    <STYLEtype=text/css> 

    <!--.Highlight{ 

    color:#00FFFF; 

    font-style:italic; 

    font-size:larger; 

    }--> 

    </STYLE>

      nutian:但正则表达式方式忽略大小写替换应该效率不是最高,但也不是最低,一般应用应该可以.

  • 相关阅读:
    383. Ransom Note
    598. Range Addition II
    453. Minimum Moves to Equal Array Elements
    492. Construct the Rectangle
    171. Excel Sheet Column Number
    697. Degree of an Array
    665. Nondecreasing Array
    视频网站使用H265编码能提高视频清晰度吗?
    现阶段的语音视频通话SDK需要解决哪些问题?
    企业远程高清会议平台视频会议系统在手机端使用的必备要求有哪些?
  • 原文地址:https://www.cnblogs.com/gc2013/p/3972158.html
Copyright © 2011-2022 走看看