C#中正则表达式进行忽略大小写的字符串替换_C/C++语言_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

C#中正则表达式进行忽略大小写的字符串替换

作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0

本篇关键词:大小字符串忽略进行
黑客防线网安网讯:  在C#里要进行忽略大小写的字符串替换,用string的Replace是很难做到的,即使花了天大的力气做到了,效率仍然是很低的,正确的方法应该是使用正则表达式。  要使用正则表达式,首先需要...
  在C#里要进行忽略大小写的字符串替换用string的Replace是很难做到的即使花了天大的力气做到了,效率仍然是很低的,正确的方法应该是使用正则表达式
  要使用正则表达式,首先需要引用命名空间
以下是引用片段:
  using System.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标签,具体看下面的代码:
以下是引用片段:
  string pain=hitDoc.Get("resume");//字符串
  System.Text.RegularExpressions.MatchCollection m= Regex.Matches(pain,keyString,RegexOptions.IgnoreCase);//忽略大小写搜索字符串中的关键字
  for(int j=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区加入下面的自定义样式
以下是引用片段:
<STYLE type=text/css>  
<!-- .Highlight { 
color: #00FFFF; 
font-style: italic;  
font-size: larger;  
} --> 
</STYLE>
  nutian:但正则表达式方式忽略大小写替换应该效率不是最高,但也不是最低,一般应用应该可以.
  当然,html标签也不是胡乱插好了就管用的。还要在要显示这个插完后的字符串的页面代码的head区加入下面的自定义样式
以下是引用片段:
<STYLE type=text/css>  
<!-- .Highlight { 
color: #00FFFF; 
font-style: italic;  
font-size: larger;  
} --> 
</STYLE>
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15112-1.html
网站维护教程更新时间:2012-04-04 22:50:04  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer