正则表达式(捕获组)

捕获组(Capture Group)是正则表达式中的一个功能,用于提取匹配的子字符串。其核心作用是将正则表达式中的特定部分标记为可提取的单元,便于后续处理(如赋值、替换等)

捕获组的基本语法

  • 语法‌:使用括号 () 包裹要提取的模式。

  • 示例‌:(\d+) 捕获一个或多个数字。
    捕获组的作用

  • 提取数据‌:从匹配结果中分离出关键信息。

  • 分组处理‌:对复杂模式进行分段解析。

  • 引用使用‌:在替换操作中重用捕获内容。

# 基本捕获

复制代码
Regex.Match("Rx 123:", @"Rx\s+(\d+):")
‌匹配结果‌:
	match.Groups[1].Value 返回 "123"。
‌应用场景‌:从日志中提取指令编号。

多组捕获

复制代码
Regex.Match("User: John, Age: 30", @"User:\s+(\w+),\s+Age:\s+(\d+)")
‌匹配结果‌:
	match.Groups[1].Value 返回 "John"。
	match.Groups[2].Value 返回 "30"。
‌应用场景‌:解析用户信息。

命名捕获(高级用法)

复制代码
Regex.Match("2023-10-05", @"(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})")
‌匹配结果‌:
	match.Groups["year"].Value 返回 "2023"。
	match.Groups["month"].Value 返回 "10"。
‌优势‌:通过名称引用,提高代码可读性。
  • 注意事项
    • 索引规则‌:捕获组从1开始计数(Groups[0] 是整个匹配)。
    • 非捕获组‌:使用 (?:...) 可匹配但不捕获内容(如 (?:\s+))。
    • 嵌套捕获‌:多层括号可嵌套,需按层级索引(如 Groups[1][2])。
相关推荐
WangJunXiang621 小时前
Mysql数据库操作
数据库·mysql·oracle
星辰_mya21 小时前
三级缓存破局:Spring 如何优雅解决循环依赖?
java·spring·缓存·面试
BUG胡汉三21 小时前
Java内网代理访问HTTPS接口SSL证书不匹配
java·https·ssl
洛邙21 小时前
互联网大厂Java求职面试实录:Spring Boot与微服务实战解析
java·spring boot·缓存·微服务·面试·分布式事务·电商
java1234_小锋21 小时前
Java高频面试题:Spring框架中的单例bean是线程安全的吗?
java·数据库·spring
代码探秘者21 小时前
【大模型应用】5.深入理解向量数据库
java·数据库·后端·python·spring·面试
小王不爱笑13221 小时前
Java 代理模式与 AOP 底层
java·开发语言·代理模式
weixin_4041576821 小时前
Java高级面试与工程实践问题集(二)
java·开发语言·面试
写代码的小阿帆21 小时前
MySQL多表联查——内连、外连
数据库·mysql
渔民小镇21 小时前
不止 request/response —— ionet 的 4 种通信模型选型指南
java·服务器·游戏