preg_ match('/(\d){2}/','abc12ef',$arr)
为什么子模式输出的是2,而不是1呢?
我没用过php,但是正则匹配中,如果有分组的话,那么捕获成功的结果为一个长度为分组数+1的数组,
数组第0个下标表示的为匹配的输入串,下标为1的表示第一组,以此类推。
PHP正则^表示开始
'/(\d){2}/'与'/\d(\d)/'匹配的子模式相同,如果你想匹配1,可使用'/(\d)\d/';
preg_match('/(\d){2}/','abc123ef',$arr);
print_r($arr);
//Array ( [0] => 12 [1] => 2 )
匹配abc123ef中 的所有数字,匹配两次,第一个为这两个匹配出来的结果,第二次为你最后一次匹配的数字,你匹配了两次,那么最后一次成功匹配的数字为2,所以是2不是1