php预匹配和模式

php预匹配和模式,php,Php,我有网址: youtube.com/v/NRH2jEyiiLo&hl=en&fs=1&rel=0 我只需要代码:NRH2jEyiiLo&hl 预匹配($pattern,$url,$matches) 我使用这个模式:$pattern='@^([^/v/]+)?([^=]+)@I' 但为什么结果是:“youtube.com/v/NRH2jEyiiLo” 如何删除“youtube.com/v/”,谢谢;) 这是我的。。。(更新) 如果你想在你的网页中嵌入视频,你可以试试这个功能 您不应该在那里使用角色

我有网址: youtube.com/v/NRH2jEyiiLo&hl=en&fs=1&rel=0

我只需要代码:NRH2jEyiiLo&hl

预匹配($pattern,$url,$matches)

我使用这个模式:
$pattern='@^([^/v/]+)?([^=]+)@I'

但为什么结果是:“youtube.com/v/NRH2jEyiiLo”

如何删除“youtube.com/v/”,谢谢;)

这是我的。。。(更新)


如果你想在你的网页中嵌入视频,你可以试试这个功能

您不应该在那里使用角色类,也不应该使用起始锚点

$pattern = '@/v/(.*?)&@';
那么使用这个模式呢

$str= "youtube.com/v/NRH2jEyiiLo";

$newarr = explode('/',$str);

echo $newarr[2];

你是否只有那个URL,或者它是嵌入在一个更大的其他内容块中的?如果没有任何内容超出视频代码,那么这将起作用,因此不太可靠。如果有人输入这段代码呢?我在模式匹配后给出答案,这在这种情况下有效,但在许多其他情况下无效;),你永远不知道用户会输入什么。但他问你如何删除“youtube.com/v/”,不,他问的是如何提取视频代码,但你的代码也能工作。
  $pattern = '@^([^/v/]+)?([^=]+)@i';
$str= "youtube.com/v/NRH2jEyiiLo";

$newarr = explode('/',$str);

echo $newarr[2];