Php 选择链接参数值的正则表达式

Php 选择链接参数值的正则表达式,php,regex,Php,Regex,如何生成选择链接特定参数值的PHP正则表达式,例如: https://anylink.com/?s=a&start=19&info=abc正则表达式选择开始参数的值(19) 我尝试使用此模式:[^start=]+$,但它只选择最后一个带有=符号的参数,这可能就是您要查找的: <?php $subject = 'https://anylink.com/?s=a&start=19&info=abc'; $pattern = '/start=([0-9]+)/'; preg_

如何生成选择链接特定参数值的PHP正则表达式,例如:

https://anylink.com/?s=a&start=19&info=abc
正则表达式选择开始参数的值(
19


我尝试使用此模式:
[^start=]+$
,但它只选择最后一个带有
=
符号的参数,这可能就是您要查找的:

<?php

$subject = 'https://anylink.com/?s=a&start=19&info=abc';
$pattern = '/start=([0-9]+)/';

preg_match($pattern, $subject, $tokens);

var_dump($tokens);
您可以为此使用和

$parts = parse_url($url);
parse_str($parts['query'], $query);
echo $query['start'];

[^…]
是一个否定字符类。是什么让你这么喜欢正则表达式的?顺便说一句,为什么不/?我认为正则表达式对我来说会更好,因为我想替换参数,我试图重新创建这个正则表达式stackoverflow.com/questions/9703039/regex-for-picking-a-value-posthanks,这就是我试图做的,我认为你应该将
[0-9]+
更改为
[^&]+
,因为这样,如果参数从integer更改为另一种类型,它仍然可以工作。@WashingtonGuedes这当然是可能的,但值得怀疑。通常,定义的参数不会突然更改其类型。相反,人们通常希望真正确定自己得到的是自己期望的:-)因此我建议不要这样做,但这肯定是个人偏好和情况本身的问题,我们不知道。我认为它可以很容易地转换为十进制。但是,这只是一个建议。@washingtong使用了一个名为
start
的参数,它很可能指的是队列中的一个位置、偏移量或ID。在所有情况下,整数都是需要处理的。