专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »DotNet » 正则表达式字符串:C#中正则表达式进行忽略大小写的字符串替换 »正文

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

来源: 发布时间:星期五, 2009年1月9日 浏览:17次 评论:0
  在C#里要进行忽略大小写串替换Replace是很难做到即使花了天大力气做到了效率仍然是很低正确思路方法应该是使用正则表达式   要使用正则表达式首先需要引用命名空间:

以下是引用片段:
  using.Text.RegularExpressions;


  然后非常简单使用:

以下是引用片段:
  Regex.Replace(串,要替换子串,替换子串,RegexOptions.IgnoreCase)


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

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

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

以下是引用片段:
  DocumentResume[i]=Regex.Replace(hitDoc.Get("resume"),keyString,""+keyString+"",RegexOptions.IgnoreCase);


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

以下是引用片段:
  pain=hitDoc.Get("resume");//
  system.Text.RegularExpressions.MatchCollectionm=Regex.Matches(pain,keyString,RegexOptions.IgnoreCase);//忽略大小写搜索串中关键字
  for(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区加入下面自定义样式

以下是引用片段:
<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:但正则表达式方式忽略大小写替换应该效率不是最高,但也不是最低,般应用应该可以.

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: