扫码一下
查看教程更方便
解析:
小括号除了将正则表达式的一部分分组在一起之外,它还创建了一个编号捕获组。它将字符串的一部分与正则表达式的一部分匹配,存储在括号内。正则表达式(ab)\1+
中,\1
是对(ab)
分组的一个引用。(ab)
匹配成功之后,会将ab捕获存储在括号中,并且对这个捕获进行编号,从1开始。因为该正则表达式中只有一个捕获组,所以\1就是对ab的引用,因此上面的正则表达式的结果其实相当于(ab)(ab)+
。不同的是后者有多个捕获组。我们通过PHP代码来运行一下上面的正则匹配。
$str = 'ababab';
$pattern = '/([ab])\1+/';
$res = preg_match($pattern,$str,$matches);
print_r($matches);