我想获取两个字符之间的网址的特定部分,例如在下面的链接中我希望获得v=
和&
之间的部分。
http://www.youtube.com/watch?v=mof-Dq3hvWs&feature=youtu.be
我使用以下正则表达式(?<=v=)(.*?)(?=&)
我的问题是链接没有以&
结尾。例如:
http://www.youtube.com/watch?v=5FlQSQuv_mg
如何在两种情况下匹配字符串?
答案 0 :(得分: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);
答案 1 :(得分:0)
(?<=v=)([^&]+)