次の文字列があるとします: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
)
パラメータをキャプチャするサブパターンは、最後のパラメータのみをキャプチャします。そして、すべてのパラメーターをキャプチャーしたいと考えています。
何か案は?
編集:
すべてのパラメーターをキャプチャしてから、爆発を使用できることを知っています。しかし、それは私の質問ではありません。
正規表現でそれがどのように行われるか知りたいです。