正则表达式 1. 分组提取/非捕获组

https://www.zybuluo.com/Zjmainstay/note/709093

1. 分组提取/非捕获组

分组,是正则里一个非常重要的概念,我们需要针对某个区域提取数据,往往需要依赖分组。而分组,其实就是正则里()括住的部分。

(1.1)分组提取

需求:在分组1中匹配meta中author属性的值
源串:
<meta author="Zjmainstay" />
another author="Zjmainstay too"
预期:分组1得到Zjmainstay
正则:meta.*?author="(.*?)"

测试地址:http://regex.zjmainstay.cn/r/5aTwRg/1

(1.2)非捕获组

针对上面的分组,有时候,我们并不需要捕获某个分组的内容,我们可以使用非捕获组(?:表达式),从而不捕获表达式部分内容到分组中。

需求:每行字符串必须是长度为2以上的偶数个字母,不能存在分组1
源串:
a
ab
abc
abcd
预期:
匹配得到 ab 和 abcd,不包含分组1
正则:^((?:[a-zA-Z]{2})+)$

测试地址:http://regex.zjmainstay.cn/r/vebS15/1

原文地址:https://www.cnblogs.com/haowuji/p/7279424.html