使用正则表达式提取 URL 参数 - 重复捕获组

2023-12-08

我正在尝试通过正则表达式提取 URL 参数,并且非常接近让它工作。我什至知道问题是什么:我的正则表达式在重复的捕获组上遇到了困难。但我根本不知道如何解决它。

语言是PHP。

我的网址类似于下面的网址。它可以没有参数,只有一个或多个:

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

我无法弄清楚如何单独捕获所有参数。我是否只能满足于第一个捕获组并自己爆炸它?如果我可以在一个正则表达式中完成所有工作,那么对于我的目的来说会更加优雅。


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);
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用正则表达式提取 URL 参数 - 重复捕获组 的相关文章