2

我想获取位于两个字符之间的 url 的特定部分,例如在下面的链接中,我想获取 and 之间的v=部分&

http://www.youtube.com/watch?v=mof-Dq3hvWs&feature=youtu.be

我用下面的正则表达式做到这一点(?<=v=)(.*?)(?=&)

我的问题是链接不以&. 例如:

http://www.youtube.com/watch?v=5FlQSQuv_mg

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

4

2 回答 2

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);
于 2012-11-16T12:33:45.307 回答
0

那这个呢?

(?<=v=)([^&]+)
于 2012-11-16T12:35:02.497 回答