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:但正则表达式方式忽略大小写替换应该效率不是最高,但也不是最低,一般应用应该可以.
C#中正则表达式进行忽略大小写的字符串替换的更多相关文章
- AC日记——忽略大小写的字符串比较 openjudge 1.7 16
16:忽略大小写的字符串比较 总时间限制: 1000ms 内存限制: 65536kB 描述 一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII ...
- OpenJudge计算概论-忽略大小写比较字符串大小
/*======================================================================= 忽略大小写比较字符串大小 总时间限制: 1000ms ...
- Python: re.IGNORECASE 标志参数字符串忽略大小写的搜索替换
为了在文本操作时忽略大小写,需要在使用re 模块的时候给这些操作提供re.IGNORECASE 标志参数.比如 >>> text = 'UPPER PYTHON, lower pyt ...
- java正则表达式的忽略大小写
(?i)abc 表示abc都忽略大小写 a(?i)bc 表示bc忽略大小写 a((?i)b)c 表示只有b忽略大小写
- OpenJudge 2721 忽略大小写比较字符串大小
1.Link: http://bailian.openjudge.cn/practice/2721/ 2.Content: 总时间限制: 1000ms 内存限制: 65536kB 描述 一般我们用st ...
- [AcWing 768] 忽略大小写比较字符串大小
点击查看代码 #include<iostream> using namespace std; string a, b; int main() { getline(cin, a); getl ...
- sql 大小写查询 字符串替换 小写xx 改为大写XX
--sql 大小写查询 select * from 表 where 字段 collate Chinese_PRC_CS_AS='xx' --替换 小写xx 改为大写XX update 表 set ...
- C#字符串替换_无视大小写
C#里的string.Replace是不能无视大小写的. 首先想到的是正则表达式,在网上查了下,果然有用正则表达式配合一些逻辑运算,实现无视大小写的字符串替换方法.但是正则表达式的方法用起来很麻烦,实 ...
- MySQL中的数据类型 [数值型、字符串型、时间日期型]
MySQL中的数据类型 [数值型.字符串型.时间日期型] MySQL中各数据类型 1. 数值类型(整型) 类型 数据大小 类型 (无符号:unsigned) 数据大小 存储空间 tinyint -12 ...
随机推荐
- ElasticSearch 查询语法
ElasticSearch是基于lucene的开源搜索引擎,它的查询语法关键字跟lucene一样,如下: 分页:from/size 字段:fields 排序:sort 查询:query 过滤:filt ...
- Boost下载安装编译配置使用指南
转载:http://www.cppblog.com/jerryma/archive/2011/10/17/158554.html --更新于2011/7/19,目前我已对boost的安装和使用有了新的 ...
- 给编译好的DLL增加签名
两个步骤,记录如下,主要用在silverlight中引用的dll要签名时: "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\ildasm ...
- 【quick-cocos2d-x】Lua 面向对象(OOP)编程与元表元方法
版权声明:本文为博主原创文章,转载请注明出处. 面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物. 早期的计算机编程是基于面向过程的方法,通过设计一个算法就可以解决当时 ...
- Linux securecrt破解
其实,以前接触过破解的东西,但是很多东西早就忘记了,何况是在Linux环境下. 结果我常识更改时间,哦,不是更改日期,往后推4天,结果显示了26 days remaining. 所以完全可以更改日期来 ...
- LeetCode(2) - Add Two Numbers
一道比较基本的LinkedList的题目.题目要求是这样,现在有两个LinkedList,(2 -> 4 -> 3)和(5 -> 6 -> 4),然后从头开始,把每个node ...
- gem 安装&卸载pod
安装: gem 应该是ruby自带的ruby包管理器 sudo gem install cocoapods 卸载: sudo gem uninstall cocoapods
- openstack kilo 流量
- 关于python all(itrable)的使用 和列表表达式使用以及复习一下短路效应。
其实现在来看 并不是什么高级特性. 但是当时看到
- ef6 code first
http://www.cnblogs.com/Bce-/p/3684643.html http://www.cnblogs.com/Gyoung/tag/Entity%20Framework/ htt ...