使用正则表达式提取 URL 参数 - 重复捕获组
我正在尝试通过正则表达式提取 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
我无法弄清楚如何单独捕获所有参数。我是否只能满足于第一个捕获组并自己爆炸它?如果我可以在一个正则表达式中完成所有工作,那么对于我的目的来说会更加优雅。
I'm attempting to extract the URL parameters via regex and am sooo close to getting it to work. I even know what the problem is: my regex is stumbling on repeated capture groups. But I simply cannot figure out how to fix it.
Language is PHP.
My URL looks something like the one below. It can have no parameters, just one or multiple:
member.php?action=bla&arg=2&test=15&schedule=16
My regex looks like this:
member\.php((?:[\?|&](\w*)=(\w*))*)
And my capture groups end up being:
1. action=bla&arg=2&test=15&schedule=16
2. schedule
3. 16
I cannot figure out how to capture all the parameters individually. Will I just have to settle for the first capture group and explode it myself? It would be much more elegant for my purposes if I can do all the work inside one regex.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您是否尝试过
parse_url
和parse_str
?Have you tried
parse_url
andparse_str
?使用-> 提取参数及其值
&[\w]*=[\d]*
Extract parameters and their values with->
&[\w]*=[\d]*