我已经写了正则表达式^(?:([1-5])|([1-5]) .*|.* ([1-5])|.* ([1-5]) .*)$
以匹配独立数字1-5,或者由字符串的其余部分分隔至少一个空格的数字.我在在线服务中测试了它,结果是数字本身.但是,在使用代码时
preg_match('/^(?:([1-5])|([1-5]) .*|.* ([1-5])|.* ([1-5]) .*)$/', 'order 12314124 5', $matches);
我明白了:
Array ( [0] => order 12314124 5 [1] => [2] => [3] => 5 )
[0]元素是完全匹配,这很好.我预计[1]元素为5,但它是空的,还有另一个空元素.为什么会出现这些空元素?