正则表达式(捕获组)

捕获组(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 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里2 天前
java中的继承和多态的区别
java
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕2 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖2 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时2 天前
01-06-A-JVM排查实战详解
java·jvm
小白男神2 天前
MySQL进阶学习四(存储过程、游标、触发器)
mysql
这个DBA有点耶2 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
vipxieliang2 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot