说我有以下字符串:Func(param1, param2)
与未知数量的参数。
我想下面的数组:捕获重复子图案
Array(
[0] => Func(param1, param2),
[1] => Func
[2] => param1,
[3] => param2,
...
)
我尝试这样做:
$str = 'Func(param1, param2)';
preg_match('/^([a-z]+)\((?:([a-z0-9]+)\s*,?\s*)*\)$/i', $str, $matches);
print_r($matches);
这是输出:
Array
(
[0] => Func(param1, param2)
[1] => Func
[2] => param2
)
捕获的PARAMS捕获子模式只有最后一个参数。我希望它捕获所有参数。
任何想法?
编辑:
我知道我可以捕获所有的参数,然后使用爆炸。但那不是我的问题。
我想知道它是如何处理正则表达式的。
我不得不disapoint你,但你想要什么**在PHP **中是不可能的,几乎所有语言都是一样的[除了Perl 6和.NET](http://stackoverflow.com/a/6571139/)。它被称为**重复捕获组**,它已经被问到[这里](http://stackoverflow.com/q/6371226/)和[这里](http://stackoverflow.com/q/6579908/)。 – HamZa 2013-04-29 13:02:35
@HamZa DzCyberDeV好的,谢谢。 – 2013-04-29 13:12:33