正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法使您可以快速分析大量文本以找到特定的字符模式;验证文本以确保它匹配预定义的模式(如电子邮件地址);提取、编辑、替换或删除文本子字符串;将提取的字符串添加到集合以生成报告。 对于处理字符串或分析大文本块的许多应用程序而言,正则表达式是不可缺少的工具。,主要是用在以下几个方面。
- 查找
- 替换
- 分割
查找
查找一般也有两个应用场景,一是在做表单输入验证,此时需用到Regex类的IsMatch方法。另一个是当你需要在一大段文本中查找出符合规则的内容时,这时要用到Regex类的Matche或Matches方法。
当在服务端要对表单输入做验证的时候,我们通常会这样做,代码如下。
/// <summary> /// 表单输入验证时 /// </summary> [TestMethod] public void RegexFind1() { bool result = Regex.IsMatch("0717-11112222", @"^0\d{2,3}-\d{8}$",RegexOptions.IgnoreCase); }
返回结果为bool值,注意这里的正则我用到了两个元字符^和$,关于它们的作用我们后面会讲到。
当我们需要在一大段文本中查找符合定义规则的内容时,我们通常会像下面这样做,代码如下。
/// <summary> /// 从一段文本中查找符合规则的字符串 /// </summary> [TestMethod] public void RegexFind2() { List<string> result = new List<string>(); string input = "027-11112222@0717-22223333@020-55552222@0769-14528745"; string pattern = @"0\d{2,3}-\d{8}"; MatchCollection matchList= Regex.Matches(input, pattern, RegexOptions.IgnoreCase); if (matchList != null && matchList.Count > 0) { foreach (Match match in matchList) { result.Add(match.Value); } } }
返回结果是一个列表,如下图。
替换
关于替换,通常是通过调用 Regex类的Replace 方法替换匹配正则表达式模式的文本,得到我们想要的结果。示例代码如下。
/// <summary> /// 将输入字符串中的Mr.,Mrs.,Miss.和Ms.替换成空格 /// </summary> [TestMethod] public void RegexReplace() { string input = "Mr. Henry Hunt,Ms. Sara Samuels,Abraham Adams,Ms. Nicole Norris"; string pattern = @"(Mr\.?\s|Mrs\.?\s|Miss\s|Ms\.?\s)"; string result = Regex.Replace(input,pattern,string.Empty); }
程序输出结果如下图。
可以发现,符合规则的内容都被移除了。
分割
分割暂时还没有用过,待后面再补充。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架