`
zendj
  • 浏览: 115734 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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

阅读更多
C# 利用正则表达式进行忽略大小写的字符串替换的应用--自定义高亮显示
在C#里要进行忽略大小写的字符串替换,用string的Replace是很难做到的,即使花了天大的力气做到了,效率仍然是很低的,正确的方法应该是使用正则表达式。
要使用正则表达式,首先需要引用命名空间:
using System.Text.RegularExpressions;
然后,非常简单,使用:
Regex.Replace(字符串,要替换的子串,替换子串的字符,RegexOptions.IgnoreCase)
就可以达到目的了,其中最后的参数RegexOptions.IgnoreCase即为指明忽略大小写
但是,我现在要为一组字符串中的所有匹配的子字符串加上高亮显示(就是让它的字体样式和字符串其它的部分不一样),用下面的语句在字符串两端插入html标签,确实可以实现高亮,但高亮显示的就成了搜索子串的搜索字符串了,大小写与原文有差异。
打个比方:我在"第十三种Asp.net实现"中搜索的keyString为"asp",替换后的字符串就成了"第十三种<span class="Highlight">asp</span>.net实现",而不是希望的"第十三种<span class="Highlight">Asp</span>.net实现"
DocumentResume[i]=Regex.Replace(hitDoc.Get("resume"),keyString,"<span class=\"Highlight\">"+keyString+"</span>",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<m.Count;j++)//循环在匹配的子串前后插东东
{

//j×31为插入html标签使pain字符串增加的长度:
pain=pain.Insert((m[j].Index+keyString.Length+j*31),"</span>");//关键字后插入html标签
pain=pain.Insert((m[j].Index+j*31),"<span class=\"Highlight\">");//关键字前插入html标签
}

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

<STYLE type=text/css>
<!-- .Highlight {
color: #00FFFF;
font-style: italic;
font-size: larger;
} -->
</STYLE>
分享到:
评论

相关推荐

    正则表达式

    i (忽略大小写) m (多行查找) vaScript动态正则表达式问题 请问正则表达式可以动态生成吗? 例如JavaScript中: var str = "strTemp"; 要生成: var re = /strTemp/; 如果是字符连接: var re = "/" + str + ...

    C#正则表达式学习

    符下两ows表研究室的火热,当晨在“@”虽然并非C#正则表达式的“成员”,但是它经常与C#正则表达式出双入对。“@”表示,跟在它后面的字符串是个“逐字字符串”,不是很好理解,举个例子,以下两个声明是等效的: ...

    正则表达式经典实例.pdf

    3.6 检查正则表达式能否整个匹配目标字符串 3.7 获取匹配文本 3.8 决定匹配的位置和长度 3.9 获取匹配文本的一部分 3.10 获取所有匹配的列表 3.11 遍历所有匹配 3.12 在过程代码中对匹配结果进行验证 3.13 在另一个...

    正则表达式30分钟入门教程

    通常,处理正则表达式的工具会提供一个忽略大小写的选项,如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种。 不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找...

    轻松学习C#的正则表达式

    在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。正则表达式拥有一套自己的语法规则,常见语法包括字符匹配... (1)IgnoreCase(忽略大小写) (2)ReghtT

    js正则表达式的使用详解

    使用构造函数定义正则表达式,注意大小写,负责就会不起作用。由于构造函数的参数是一个字符串,也可以是两个斜杠的方式定义,遇到一些特殊字符就需要使用\进行转义通过双斜杠的方式定义同样的正则表达式 代码如下:...

    正则表达式模式修饰符

    如果设置了这个修饰符,模式中的字母会进行大小写不敏感匹配。 m (PCRE_MULTILINE) 默认情况下,PCRE 认为目标字符串是由单行字符组成的(然而实际上它可能会包含多行), “行首”元字符 (^) 仅匹配字符串的开始位置...

    字符串帮助类C#实现Demo

    字符串操作是在编程中对字符串进行...6. 大小写转换(Case Conversion):将字符串中的字符转换为大写或小写。可以使用特定的大小写转换函数或方法来实现。 7. 去除空格(Trim):去除字符串开头和末尾的空格或.....

    c#文本替换命令行工具源码

    replace [path/]filename search replace [/option] 替换文本文件中的字符串,支持 通配符文件名 replace setname search replace [/option] 替换参数变量中的字符串 /option参数说明: i 区分大小写....

    Java-PHP-C#

    正如上面说的,正则表达式看起来非常复杂,让人害怕,大多数的PHP初学者都会跳过这里,继续下面的学习,但是PHP中的正则表达式有着可以利用模式匹配找到符合条件的字符串、判断字符串是否合乎条件或者用指定的字符...

    C#正则匹配RegexOptions选项的组合使用方法

    C#中使用正则所需要引用的命名空间是 using System.Text.RegularExpressions 它包含了8个类,用得最多是的Regex,Regex不仅...IgnoreCase //是匹配忽略大小写 默认情况区分大小写 RightToLeft //从右到左查找字符串 

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    全书分6篇共25章,主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合的使用、面向对象编程技术、数据结构与算法、Windows窗体基础、特色窗体界面、窗体控制技术、MDI窗体和继承窗体、Windows...

    editplus 代码编辑器html c++ jsp css

    【2】 正则表达式应用——数字替换—————————-Microshaoft,jiuk2k 【3】 正则表达式应用——删除每一行行尾的指定字符 【4】 正则表达式应用——替换带有半角括号的多行 【5】 正则表达式应用——删除空行...

    linux文本处理三剑客.txt

    -i:忽略字符大小写 -n:显示匹配的行号 -c:统计匹配的行数 -o:仅显示匹配到的字符串 -q:静默模式,不输出任何信息 -A#:after,后#行 -B#:before,前#行 -C#:context,前后各#行 -e:实现多个选项间的逻辑or关系 grep -e '...

    C#编程经验技巧宝典

    85 &lt;br&gt;0130 复制字符串中指定的字符 85 &lt;br&gt;0131 巧截字符串的数字 86 &lt;br&gt;0132 如何存储变长字符串 86 &lt;br&gt;0133 在进行字符串比较时忽略大小写 87 &lt;br&gt;0134 如何去除字符串尾空格 87 ...

    Editplus 3[1].0

    【1】 正则表达式应用——替换指定内容到行尾 【2】 正则表达式应用——数字替换----------------------------Microshaoft@CCF,jiuk2k@CCF 【3】 正则表达式应用——删除每一行行尾的指定字符 【4】 正则表达式应用...

    EditPlus 2整理信箱的工具

    【1】 正则表达式应用——替换指定内容到行尾 【2】 正则表达式应用——数字替换----------------------------Microshaoft@CCF,jiuk2k@CCF 【3】 正则表达式应用——删除每一行行尾的指定字符 【4】 正则表达式应用...

Global site tag (gtag.js) - Google Analytics