C 中 正規表示式進行忽略大小寫的字串替換

2021-04-13 13:47:14 字數 1458 閱讀 1599

在c#裡要進行忽略大小寫的字串替換,用string的replace是很難做到的,即使花了天大的力氣做到了,效率仍然是很低的,正確的方法應該是使用正規表示式

要使用正規表示式,首先需要引用命名空間:

using system.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標籤,具體看下面的**:

string pain=hitdoc.get("resume");//字串

system.text.regularexpressions.matchcollection m= regex.matches(pain,keystring,regexoptions.ignorecase);//忽略大小寫搜尋字串中的關鍵字

for(int 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區加入下面的自定義樣式

nutian:但正規表示式方式忽略大小寫替換應該效率不是最高,但也不是最低,一般應用應該可以.

java正規表示式忽略大小寫

第一種 直接用正則,表示整體忽略大小寫,如果單個,則可以寫成 d oc 表示oc忽略大小寫,d o c 表示只有o忽略大小寫 string regex1 i doc 第二種,採用patter編譯忽略大小寫 string regex doc string s doc system.out.printl...

C 中正規表示式進行忽略大小寫的字串替換

在c 裡要進行忽略大小寫的字串替換,用string的replace是很難做到的,即使花了天大的力氣做到了,效率仍然是很低的,正確的方法應該是使用正規表示式。要使用正規表示式,首先需要引用命名空間 以下是引用片段 usingsystem.text.regularexpressions 然後,非常簡單,...

NotePad 正規表示式大小寫轉換

經常會用到notepad 中查詢替換的功能,其中通過正規表示式的查詢和替換功能著實讓平常重複繁瑣的工作變得輕鬆了些.這裡搜到了一片關於正規表示式替換時轉換大小寫字母的方式,在這裡整理一下,希望能夠幫助到用的到的同學.字串查詢 替換結果 功能hello world u 0hello world 小寫轉...