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

Posted 下一个路口

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式 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

以上是关于正则表达式 1. 分组提取/非捕获组的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式 - 分组分组引用反向引用多选非捕获分组

正则表达式基本概念

正则表达式基本概念

正则表达式中分组功能高级用法

正则表达式非捕获分组与具名分组

正则表达式非捕获分组与具名分组