正则表达式(捕获组)

捕获组(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开始计数(Groups0 是整个匹配)。
    • 非捕获组‌:使用 (?:...) 可匹配但不捕获内容(如 (?:\s+))。
    • 嵌套捕获‌:多层括号可嵌套,需按层级索引(如 Groups12)。
相关推荐
她的男孩2 小时前
Spring Boot 接 Flowable 工作流:用 3 个注解搭一个请假审批流程
java·后端·架构
荣码4 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
plainGeekDev5 小时前
Gson → kotlinx.serialization
android·java·kotlin
小bo波14 小时前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯15 小时前
GoF设计模式——备忘录模式
java·后端·spring·设计模式
这个DBA有点耶1 天前
SQL改写进阶:标量子查询的“隐形代价”与消除实战
数据库·mysql·架构
smallyoung1 天前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·mysql·postgresql
SamDeepThinking1 天前
裁掉那个差程序员后,给你看团队里高手的代码:这个习惯,希望你有
java·后端·程序员