正则表达式捕获查询字符串中的变量

Flo*_*ena 2 php regex

我想这是两个字符,例如在链路之间下面我想之间的部分的URL的特定部分v=&.

http://www.youtube.com/watch?v=mof-Dq3hvWs&feature=youtu.be
Run Code Online (Sandbox Code Playgroud)

我使用以下正则表达式执行此操作 (?<=v=)(.*?)(?=&)

我的问题是当链接没有以&.例如:

http://www.youtube.com/watch?v=5FlQSQuv_mg
Run Code Online (Sandbox Code Playgroud)

在两种情况下如何匹配字符串?

Jas*_*ary 5

不要使用正则表达式.使用parse_url()parse_str().

$url = 'http://www.youtube.com/watch?v=mof-Dq3hvWs&feature=youtu.be';
$parts = parse_url($url);
parse_str($parts['query'], $arr);
print_r($arr);
Run Code Online (Sandbox Code Playgroud)