C#字符串插入html標簽
C#字符串插入html標簽
在C#里要進行忽略大小寫的字符串替換,用string的Replace是很難做到的,即使花了天大的力氣做到了,效率仍然是很低的,正確的方法應該是使用正則表達式。
要使用正則表達式,首先需要引用命名空間:
- using System.Text.RegularExpressions;
然后,非常簡單,使用:
- Regex.Replace(字符串,要替換的子串,替換子串的字符,RegexOptions.IgnoreCase)
就可以達到目的了,其中***的參數RegexOptions.IgnoreCase即為指明忽略大小寫
但是,我現在要為一組字符串中的所有匹配的子字符串加上高亮顯示(就是讓它的字體樣式和字符串其它的部分不一樣),用下面的語句在C#字符串插入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標簽插入錯誤。
- painpain=pain.Insert((m[j].Index+keyString.Length+j*31),"");//關鍵字后插入html標簽
- painpain=pain.Insert((m[j].Index+j*31),"");//關鍵字前插入html標簽
- }
當然,html標簽也不是胡亂插好了就管用的。還要在要顯示這個插完后的字符串的頁面代碼的head區加入下面的自定義樣式
- <STYLE type=text/css>
- Highlight {
- color: #00FFFF;
- font-style: italic;
- font-size: larger;
- }
- </STYLE>
nutian:但正則表達式方式忽略大小寫替換應該效率不是***,但也不是***,一般應用應該可以。以上介紹C#字符串插入html標簽。
【編輯推薦】