进阶 - 引用 ¶
作者:KK
发表日期:2017.10.14
基于JS讲解 ¶
先看JS的示例代码:
console.log(
'11aabbaabbcc22'.match(/a+b+a+b+/)[0],
'11aabbaabbcc22'.match(/(a+)(b+)\1\2/)[0] //效果同上
);
其实就是通过\1
和\2
来引用了前面两个括号部分的表达式,以免重复书写(\num的形式,num是正整数)
简单理解就是封装代码,重复调用,不重写这块代码,在繁杂又有重复匹配项的表达式中可以这样用,不过需求较少,毕竟重复写也不碍大家什么事,偶尔写嘛,经常写的话可能就要注意这个了
PHP代码: ¶
header('Content-type:text/plain');
preg_match('#a+b+a+b+#', '11aabbaabbcc22', $matchResult1);
print_r($matchResult1[0]); // aabbaabb
preg_match('#(a+)(b+)\1\2#', '11aabbaabbcc22', $matchResult2);
print_r(PHP_EOL . $matchResult2[0]); //效果同上