Извлечение параметров URL с регулярным выражением – повторение группы захвата

Я пытаюсь извлечь параметры URL с помощью regex, и я очень близок к тому, чтобы заставить его работать. Я даже знаю, в чем проблема: мое регулярное выражение спотыкается о повторных группах захвата. Но я просто не могу понять, как это исправить.

Язык – это PHP.

Мой URL-адрес выглядит примерно так, как показано ниже. Он не может иметь никаких параметров, только один или несколько:

member.php?action=bla&arg=2&test=15&schedule=16 

Мое регулярное выражение выглядит так:

 member\.php((?:[\?|&](\w*)=(\w*))*) 

И мои группы захвата оказываются:

 1. action=bla&arg=2&test=15&schedule=16 2. schedule 3. 16 

Я не могу понять, как фиксировать все параметры по отдельности. Должен ли я просто согласиться на первую группу захвата и сам ее взорвать? Для моих целей было бы намного более изящным, если бы я мог выполнять всю работу внутри одного регулярного выражения.

Related of "Извлечение параметров URL с регулярным выражением – повторение группы захвата"

 try: <?php $str="member.php?action=bla&arg=2&test=15&schedule=16#test"; preg_match_all('/([^?&=#]+)=([^&#]*)/',$str,$m); print_r($m); //combine the keys and values onto an assoc array $data=array_combine( $m[1], $m[2]); print_r($data); ?> 

Вы пробовали parse_url и parse_str ?

Извлечь параметры и их значения с помощью-> &[\w]*=[\d]*