捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部。
简单的说就是把正则表达式匹配的别结果以变量的形式再次调用。
如果没有显式为捕获组命名,即没有使用命名捕获组,那么需要按数字顺序来访问所有捕获组。在只有普通捕获组的情况下,捕获组的编号是按照“(”出现的顺序,从左到右,从1开始进行编号的。 注意:0代表整个组。
例: 正则表达式:(\d{4})-(\d{2})-(\d\d) 匹配:2018-06-01
结果: -. 0代表:2018-06-01 -. 1代表:2018 -. 2代表:06 -. 3代表:01
普通捕获组反向引用:\k<number>,通常简写为\number
例:
\0 , \1, \2, \3
现有函数:
how(a,b);
how(c,x);
how(m,n);
改成:
how(a,b,a);
how(c,x,c);
how(m,n,m);
如果大量这种代码需要更改,这样使用正则表达式就会方便很多。
实现: 查找正则表达式:
^.*(how)\(([a-zA-Z]*),([a-zA-Z]*)\);
替换正则表达式:
\1(\2,\3,\2);
解释:
(how) 捕获 how 结果放于 1 内
([a-zA-Z]*) 捕获 参数1 结果放于 2 内
([a-zA-Z]*) 捕获 参数2 结果放于 3 内
\number 输出 捕获组
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有