温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

什么是正则中的捕获组

发布时间:2026-09-14 03:34:24 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

在**正则表达式(Regex)**中,捕获组(Capturing Group)指的是:用一对圆括号 () 把正则的一部分“包”起来,这样这部分匹配到的内容就会被单独保存下来,方便后续提取、替换或引用。


一、最基本的概念

示例

(\d{4})-(\d{2})-(\d{2})

用来匹配日期,比如:

2024-01-15

这里有三个捕获组:

  • 第 1 组:2024
  • 第 2 组:01
  • 第 3 组:15

二、为什么要用捕获组?

1️⃣ 提取内容

const str = "2024-01-15";
const match = str.match(/(\d{4})-(\d{2})-(\d{2})/);
console.log(match[1]); // 2024
console.log(match[2]); // 01
console.log(match[3]); // 15

2️⃣ 替换时引用(反向引用)

"2024-01-15".replace(/(\d{4})-(\d{2})-(\d{2})/, "$3/$2/$1")
// 结果:15/01/2024

3️⃣ 在正则内部重复或判断

(\w)\1

匹配“连续两个相同字符”,如 aa、bb


三、捕获组的编号规则

  • 按 左括号出现的顺序 编号
  • 从 1 开始(第 0 组是整个匹配)
((a)(b))
  • 组 1:ab
  • 组 2:a
  • 组 3:b

四、非捕获组(对比)

如果你只想分组,不想捕获,用:

(?:...)

例如:

(?:\d{4})-(\d{2})
  • 只有 (\d{2}) 是捕获组

✅ 好处:性能更好,结构更清晰


五、命名捕获组(更清晰)

JavaScript / Python 支持

(?<year>\d{4})-(?<month>\d{2})

使用:

match.groups.year
match.groups.month

六、一句话总结

捕获组 = 用 () 把正则的一部分包起来,用来“记住”匹配到的内容

如果你愿意,我可以用 某一门语言(JS / Python / Java) 或 具体场景(日志解析、表单校验) 再给你讲一遍。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手