This:
preg_match('~foo(.*?)(bar)?~','foo bar',$m);
给我这个:
Array
(
[0] => foo
[1] =>
)
我对此有些困惑。我知道第一组给了我一个空字符串,因为它是一个懒惰匹配。但是(bar)?
不应该是贪婪的吗?这样岂不是应该给我捕获组2?
在我看来,我应该得到的是:
Array
(
[0] => foo
[1] =>
[2] => bar
)
其中 [1]
表示一个空格。然而,这并没有发生。为什么?