假设我有以下字符串: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
)
捕获参数的子模式仅捕获最后一个参数。我希望它能够捕获所有参数。
有任何想法吗?
编辑:
我知道我可以捕获所有参数,然后使用爆炸。但这不是我的问题。
我想知道它是如何用正则表达式完成的。