1 捕获组
1.1 定义
正则表达式中的捕获组是通过将部分模式括在圆括号()内定义的,用于提取匹配该部分模式的子字符串,捕获组允许对特定部分的匹配结果进行引用、重复利用或者操作。
使用圆括号 ()来定义一个捕获组。
Ps.部分技术资料中也将“捕获组”称为“分组”。
1.2 引用
在替换字符串中,可以通过 $1,$2,…或 \1,\2,…等方式引用这些捕获组。使用时,在不同软件工具或不同编程语言中可能会有所不同,请查阅相关使用指引。
2 使用示例
2.1 简单捕获组
以字符串“Hello World”为例,如果想要匹配“World”前面的“Hello ”部分:
此时,“(Hello )”是一个捕获组,它捕获了“Hello ”这个子字符串。
如果使用正则表达式替换功能,想要保留“Hello ”,而去掉“World”,可以替换为:$1
2.2 反向引用
如果想查找连续出现多次相同的单词,如“Hello Hello Hello”,可以使用如下正则表达式:
释义:
- \b 表示英文单词边界;
- (\w+) 是一个捕获组,匹配一个或多个字母数字字符;
- \s+ 匹配一个或多个空白字符;
- \1 是一个反向引用,指向第一个捕获组,确保后面跟随的是与第一个捕获组完全相同的内容。
2.3 多捕获组
如果想要将一个日期格式“2025-03-12”变更为“12/03/2025”,可以使用如下正则表达式:
释义:
创建了3个捕获组:
- (\d{4}):第一个捕获组,用于匹配年份;
- (\d{2}):第二个捕获组,用于匹配月份;
- (\d{2}):第三个捕获组,用于匹配日。
替换字符串写为:$3/$2/$1
正文完