我想获取位于两个字符之间的 url 的特定部分,例如在下面的链接中,我想获取 and 之间的v=
部分&
。
http://www.youtube.com/watch?v=mof-Dq3hvWs&feature=youtu.be
我用下面的正则表达式做到这一点(?<=v=)(.*?)(?=&)
我的问题是链接不以&
. 例如:
http://www.youtube.com/watch?v=5FlQSQuv_mg
如何在这两种情况下匹配字符串?
不要使用正则表达式。使用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);
那这个呢?
(?<=v=)([^&]+)