到目前为止,我一直在使用这个正则表达式代码来获取 YouTube 视频的 ID
"/https?:\/\/w*.?(?:youtube.com|youtu.be)\/watch\/\?v=([A-Za-z0-9\-_]+)/i"
我尝试扩展它,所以它会忽略 HTML 链接中 YouTube 视频的 ID (href="..")
"/[?:(^href=\")]https?:\/\/w*.?(?:youtube.com|youtu.be)\/watch\/\?v=([A-Za-z0-9\-_]+)/i"
不幸的是,那不是这样做的。事实上,完整的代码会产生相反的结果。
$input = array(
'http://youtube.com/watch/?v=oKay1',
'http://youtu.be/watch/?v=oKay2',
'href="http://youtube.com/watch/?v=NICHToKay"', //this shouldn't be found
'[url="http://youtube.com/watch/?v=oKay3]'
);
$pattern = "/[?:(^href=\")]https?:\/\/w*.?(?:youtube.com|youtu.be)\/watch\/\?v=([A-Za-z0-9\-_]+)/i";
foreach($input as $v) {
$match = preg_match_all($pattern, $v, $result);
print "$v => $match\n";
if ($match == 1)
var_dump($result);
}
请问有什么帮助吗?