正则表达式(捕获组)

捕获组(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])。
相关推荐
侠客行03175 小时前
Mybatis连接池实现及池化模式
java·mybatis·源码阅读
蛇皮划水怪5 小时前
深入浅出LangChain4J
java·langchain·llm
剩下了什么6 小时前
MySQL JSON_SET() 函数
数据库·mysql·json
老毛肚7 小时前
MyBatis体系结构与工作原理 上篇
java·mybatis
java搬砖工-苤-初心不变7 小时前
MySQL 主从复制配置完全指南:从原理到实践
数据库·mysql
风流倜傥唐伯虎7 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Yvonne爱编码7 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚7 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言
你这个代码我看不懂8 小时前
@ConditionalOnProperty不直接使用松绑定规则
java·开发语言
fuquxiaoguang8 小时前
深入浅出:使用MDC构建SpringBoot全链路请求追踪系统
java·spring boot·后端·调用链分析