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

C#中正则表达式进行忽略大小写的字符串替换的更多相关文章

  1. AC日记——忽略大小写的字符串比较 openjudge 1.7 16

    16:忽略大小写的字符串比较 总时间限制:  1000ms 内存限制:  65536kB 描述 一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII ...

  2. OpenJudge计算概论-忽略大小写比较字符串大小

    /*======================================================================= 忽略大小写比较字符串大小 总时间限制: 1000ms ...

  3. Python: re.IGNORECASE 标志参数字符串忽略大小写的搜索替换

    为了在文本操作时忽略大小写,需要在使用re 模块的时候给这些操作提供re.IGNORECASE 标志参数.比如 >>> text = 'UPPER PYTHON, lower pyt ...

  4. java正则表达式的忽略大小写

    (?i)abc 表示abc都忽略大小写  a(?i)bc 表示bc忽略大小写  a((?i)b)c 表示只有b忽略大小写

  5. OpenJudge 2721 忽略大小写比较字符串大小

    1.Link: http://bailian.openjudge.cn/practice/2721/ 2.Content: 总时间限制: 1000ms 内存限制: 65536kB 描述 一般我们用st ...

  6. [AcWing 768] 忽略大小写比较字符串大小

    点击查看代码 #include<iostream> using namespace std; string a, b; int main() { getline(cin, a); getl ...

  7. sql 大小写查询 字符串替换 小写xx 改为大写XX

    --sql 大小写查询 select * from 表 where 字段 collate Chinese_PRC_CS_AS='xx' --替换 小写xx 改为大写XX update 表  set  ...

  8. C#字符串替换_无视大小写

    C#里的string.Replace是不能无视大小写的. 首先想到的是正则表达式,在网上查了下,果然有用正则表达式配合一些逻辑运算,实现无视大小写的字符串替换方法.但是正则表达式的方法用起来很麻烦,实 ...

  9. MySQL中的数据类型 [数值型、字符串型、时间日期型]

    MySQL中的数据类型 [数值型.字符串型.时间日期型] MySQL中各数据类型 1. 数值类型(整型) 类型 数据大小 类型 (无符号:unsigned) 数据大小 存储空间 tinyint -12 ...

随机推荐

  1. simpletest:一个简单的PHP试工具

    1. 下载: http://simpletest.org/ .2. 下载后,只要测试文件中包含如下两个文件,就可以用了 : <?php require_once('simpletest/auto ...

  2. Aptana 插件 for Eclipse 4.4

    http://download.aptana.com/studio3/plugin/install Aptana Update Site This site is designed to be use ...

  3. IE对toLocaleString小数位处理

    在js中对数值的格式化经常会用到四舍五入.保留小数位数.百分制格式化,分别会用到以下方法 <script type="text/javascript"> var n = ...

  4. Linker scripts之Intro

    1 Intro Every link is controlled by a linker script. The main purpose of the linker script is to des ...

  5. 服务器安装Linux应该注意的问题

    安装方式: 1.光盘安装 2.睿捷引导安装 3.u盘安装 4.硬盘安装 5.IPMI远程安装 其中,睿捷是最方便的方式,驱动直接都会安装好,但是睿捷支持的Linux系统只有两个,局限性比较大: 光盘和 ...

  6. 父视图 使用 UIViewAnimationWithBlocks 时,如何让子视图无动画

    tableView使用 UIViewAnimationWithBlocks 时 上面的cell也会一起出现动画, 所以在设置cell的时候 添加 [UIView performWithoutAnima ...

  7. 关于MAC下的QQ聊天中看不到对方所发的图片解决

    使用QQ聊天我们会经常碰到一件让人烦心的事情,那就是别人发的截图自己看不大,是一张裂图(腾讯默认的那张图片).通常有几种情况可以造成这种结果: 第一种原因,网络延迟原因,你的网络不好或者对方的网络不好 ...

  8. 【Visual Studio2010】创建XAML分析插件

    最近项目[Silverlight]中的需要实现国际化,需要对所有控件进行一个处理.由于使用了Telerik的控件,只需要去掉原有的Label或者Header属性,然后添加一个资源Key即可.但是在项目 ...

  9. WebRtc VoiceEngine代码解析

    WebRtc中VoiceEngine可以完成大部分的VOIP相关人物,包括采集.自动增益.噪声消除.回声抑制.编解码.RTP传输.下边我们通过代码来解析Voe中处理流程: 创建VoiceEngine和 ...

  10. mysql编码详解

    在开发程序的时候,我们使用mysql数据库开发的时候,有时会碰到自己明明输入的是中文,为什么数据库中存储的就是???? 1.在配置Connection URL时,加上?useUnicode=true& ...