在C#里要进行忽略大小写的字符串替换用string的Replace是很难做到的即使花了天大的力气做到了效率仍然是很低的正确的方法应该是使用正则表达式
要使用正则表达式首先需要引用命名空间
以下是引用片段
usingSystemTextRegularExpressions;
然后非常简单使用
以下是引用片段
RegexReplace(字符串要替换的子串替换子串的字符RegexOptionsIgnoreCase)
就可以达到目的了其中最后的参数RegexOptionsIgnoreCase即为指明忽略大小写
但是我现在要为一组字符串中的所有匹配的子字符串加上高亮显示(就是让它的字体样式和字符串其它的部分不一样)用下面的语句在字符串两端插入html标签确实可以实现高亮但高亮显示的就成了搜索子串的搜索字符串了大小写与原文有差异
打个比方我在第十三种实现中搜索的keyString为asp替换后的字符串就成了第十三种 实现而不是希望的第十三种 实现
以下是引用片段
DocumentResume[i]=RegexReplace(hitDocGet(resume)keyString+keyString+RegexOptionsIgnoreCase);
所以直接用正则表达式的Replace也不能达到我的需要而要用到正则表达式的Match搜索方法(Match搜索单条Matchs多条)然后在匹配的子串前后插入html标签具体看下面的代码
以下是引用片段
stringpain=hitDocGet(resume);//字符串
SystemTextRegularExpressionsMatchCollectionm=RegexMatches(painkeyStringRegexOptionsIgnoreCase);//忽略大小写搜索字符串中的关键字
for(intj=;j
{
//j×为插入html标签使pain字符串增加的长度注意下面两句不能交换位置否则将出现HTML标签插入错误
pain=painInsert((m[j]Index+keyStringLength+j*));//关键字后插入html标签
pain=painInsert((m[j]Index+j*));//关键字前插入html标签
}