当前位置: 首页 > news >正文

C# 使用正则表达式

C# 使用正则表达式

/// <summary>
/// 测试正则表达式
/// </summary>
private static void test022()
{//检查是否匹配:Regex.IsMatch(currencyValue, pattern); 或 new Regex(...).IsMatch(currencyValue)string pattern = @"\d{3,}";bool b = Regex.IsMatch("98", pattern);Console.WriteLine(b);//Match方法返回第一个匹配项。例如,从一段文本中获取第一个符合电子邮件格式的字符串(简单示例)。string text = "我的邮箱是test@example.com,还有一个无效邮箱abc";Regex emailRegex = new Regex(@"[a-zA-Z0-9_.]+@[a-zA-Z0-9_.]+\.[a-zA-Z]+");Match match = emailRegex.Match(text);if (match.Success){Console.WriteLine("找到的邮箱是: " + match.Value);}//Matches方法返回所有匹配项的集合。例如,从一段文本中获取所有的数字。string numberText = "abc123def456";Regex numberRegex = new Regex(@"\d+");MatchCollection matches = numberRegex.Matches(numberText);foreach (Match m in matches){Console.WriteLine(m.Value);}//分组(Grouping):使用括号()可以将正则表达式的一部分进行分组。//分组可以用于提取匹配的特定部分或者在匹配过程中应用量词到一组字符上。//例如,在匹配日期格式(假设为yyyy-MM-dd)时,可以这样分组来提取年、月、日。string dateText = "2024-05-10";Regex dateRegex = new Regex(@"(\d{4})-(\d{2})-(\d{2})");Match match2 = dateRegex.Match(dateText);if (match2.Success){Console.WriteLine("年: " + match2.Groups[1].Value);Console.WriteLine("月: " + match2.Groups[2].Value);Console.WriteLine("日: " + match2.Groups[3].Value);}//零宽断言(Zero - width Assertions):这是一种特殊的匹配方式,它不消耗字符,只是在某个位置进行断言。//例如,(?=...)是正向肯定预查,它用于查找后面跟着特定模式的位置。假设要找到后面跟着abc的数字,可以这样写:\d(?=abc)//\d{2}(?=19)   // 匹配位置必须 ‌后面面紧跟着‌ "19" //\d{2}(?!19)   // 匹配位置必须 ‌后面面紧跟着‌ 不是"19" //(?<=19)\d{2}  // 匹配位置必须 ‌前面紧跟着‌ "19" //(?<!19)\d{2}  // 匹配前面不是"19"的两位数字string assertText = "1abc2def";Regex assertRegex = new Regex(@"\d(?=abc)");//找到后面跟着abc的数字//Regex assertRegex = new Regex(@"\d(?!abc)");//找到后面跟着非abc的数字//Regex assertRegex = new Regex(@"(?<=abc)\d");//找到前面跟着abc的数字//Regex assertRegex = new Regex(@"(?<!abc)\d");//找到前面跟着非abc的数字MatchCollection matches2 = assertRegex.Matches(assertText);foreach (Match ma in matches2){Console.WriteLine(ma.Value);//}Console.WriteLine("--------------------------------");// 替换replacevar source = "123abc456ABC789";// 静态方法//var newSource=Regex.Replace(source,"abc","|",RegexOptions.IgnoreCase);// 实例方法Regex regex = new Regex("abc", RegexOptions.IgnoreCase);var newSource = regex.Replace(source, "|");Console.WriteLine("原字符串:" + source);Console.WriteLine("替换后的字符串:" + newSource);}

参考:
https://blog.csdn.net/weixin_39604653/article/details/144316052
https://www.cnblogs.com/sosoft/p/regexMatch.html
https://www.runoob.com/csharp/csharp-regular-expressions.html

相关文章:

  • 因泰立科技H1X激光雷达:因泰立科技为智慧工业注入新动力
  • 1.3 古典概型和几何概型
  • 第三方测试机构进行科技成果鉴定测试有什么价值
  • Java学习——正则表达式
  • 微信小程序- 用canvas生成排行榜
  • spark 执行 hive sql数据丢失
  • React---day10
  • Python使用clickhouse-local和MySQL表函数实现从MySQL到ClickHouse数据同步
  • [ElasticSearch] DSL查询
  • Flask音频处理:构建高效的Web音频应用指南
  • Ubuntu系统下交叉编译cJSON
  • curl获取ip定位信息 --- system(一)
  • Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
  • 基于 BGE 模型与 Flask 的智能问答系统开发实践
  • 大模型与 NLP、Transformer 架构
  • 动力电池点焊机:驱动电池焊接高效与可靠的核心力量|比斯特自动化
  • 深入理解Java中的this关键字:核心概念与实践应用
  • XXTEA,XTEA与TEA
  • html+css+js趣味小游戏~Cookie Clicker放置休闲(附源码)
  • 探索 Java 垃圾收集:对象存活判定、回收流程与内存策略
  • 有口碑的合肥网站建设/崇左seo
  • 联想电脑网站建设策划书/下载百度app下载
  • 胶州城乡建设局网站/b2b平台是什么意思
  • 营销型企业网站包括哪些类型/关键词搜索方法
  • 龙华网站建设/地推接单平台找推网
  • 怎么把网站建设推广出去/阿里云搜索