在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> |
相关推荐
知识点 3:判断输入的字符串是否全是英文(不区分大小写) 在上面的代码中,我们可以看到一个名为 isEnglishString 的方法,该方法可以判断输入字符串是否全是英文字符。该方法使用了正则表达式 @"^[a-zA-Z]+$" 来...
在实际开发中,结合`StringBuilder`类处理大量字符串拼接,以及利用正则表达式的强大功能进行数据验证和清洗,都将使你的代码更加高效和专业。通过深入阅读《C#字符串和正则表达式参考手册》,你将能够更全面地理解...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换操作。C#作为.NET框架的一部分,提供了全面支持正则表达式的类库,使得开发人员能够方便地利用正则表达式进行复杂的文本处理任务。在这个...
C#正则表达式语法大全涵盖了在C#编程语言中使用正则表达式进行文本匹配、提取、替换等操作所必需的语法知识。正则表达式是一种强大的文本处理工具,它可以描述字符串的模式,让我们能够执行复杂的搜索和匹配操作。 ...
在IT领域,正则表达式...通过对这个源代码的分析和学习,开发者不仅可以掌握C#正则表达式的基本用法,还能了解到一些高级特性和实际应用中的技巧。这对于提升软件开发能力,特别是在处理文本数据时,是非常有帮助的。
在C#中,正则表达式提供了一种灵活且强大的方式来处理字符串,尤其在处理复杂的文本模式时显得尤为重要。下面将详细讨论C#中的正则表达式及其相关知识点。 一、正则表达式基础 1. 基本字符: - 字符匹配:"."代表...
对于字符串比较,有`Equals`和`Compare`方法,区分大小写和不区分大小写的比较。 **正则表达式** 正则表达式(Regular Expression)是一种模式匹配工具,用于在文本中查找、替换或捕获符合特定规则的字符串。在C#...
5. **高级选项**:提供一些高级设置,如忽略大小写、全局匹配等。 6. **调试模式**:显示匹配过程的详细信息,帮助开发者理解正则表达式的匹配逻辑。 这个C#项目提供的源代码,不仅可以让开发者直接运行和使用测试...
总结,通过上述C#代码,我们可以有效地对用户的邮箱和密码进行正则表达式验证,确保输入数据的准确性和安全性。在实际项目中,还可以根据具体需求调整正则表达式,以适应更复杂的验证规则。此外,为了提高用户体验,...
C#正则表达式支持一些预定义的字符类,如`\w`代表单词字符(等同于`[a-zA-Z0-9_]`),`\s`代表空白字符(如空格、制表符等)。 6. **量词**: - `*`:匹配前面的子表达式零次或多次。 - `+`:匹配前面的子表达式...
例如,`Regex.IsMatch()`用于检查字符串是否符合给定的正则表达式模式,`Regex.Replace()`则用于替换匹配到的子串,而`Regex.Split()`可以按照正则模式将字符串分割成多个部分。 在代码中,开发者可能创建了一个...
2. **字符串方法**:如`Substring()`用于截取子字符串,`IndexOf()`用于查找子串位置,`Replace()`用于替换子串,`Trim()`用于去除首尾空白,`ToLower()`和`ToUpper()`用于大小写转换。 3. **字符串连接**:使用`+`...
5. **匹配选项**:如忽略大小写、多行模式等,工具会提供相应的设置,允许开发者调整正则表达式的匹配行为。 6. **性能分析**:对于大型文本的匹配,工具可能会提供匹配速度的统计,帮助优化正则表达式的性能。 `...
- 示例解释:匹配由大小写字母组成的字符串,如`AbCd`。 3. **匹配英文大写字母组成的字符串**: - 正则表达式:`"^[A-Z]+$"` - 示例解释:匹配由大写字母组成的字符串,如`ABC`。 4. **匹配英文小写字母组成的...
这些选项包括是否忽略大小写、是否多行匹配等。这些选项可以在正则表达式模式中直接指定,或者在 `RegexOptions` 枚举中指定。 最后,文档中还提到了一些杂项构造,它们包含了不常使用但有时非常有用的特性,如处理...
在实际应用中,你还可以通过正则表达式的修饰符如`IgnoreCase`来忽略大小写,或者使用`Match`、`Matches`方法获取匹配的实例。同时,正则表达式支持更多的复杂模式,如括号分组、否定预查、量词等,能应对更复杂的...
C#支持多种字符串比较方式,包括不区分大小写的比较、文化敏感性的比较等。这些可以通过`String.Compare()`或`String.Equals()`方法实现。例如: ```csharp string s1 = "hello"; string s2 = "Hello"; bool isEqual...
本文通过实例详细介绍了C#中使用正则表达式进行字符串匹配与替换的技巧和注意事项。 首先,正则表达式在C#中是通过System.Text.RegularExpressions命名空间提供的。这个命名空间包含了一系列相关的类,如Regex、...