これまでのところ、この正規表現コードを使用して YouTube ビデオの ID を取得してきました
"/https?:\/\/w*.?(?:youtube.com|youtu.be)\/watch\/\?v=([A-Za-z0-9\-_]+)/i"
HTML リンク (href="..") の YouTube 動画の ID を無視するように拡張してみました。
"/[?:(^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);
}
助けてください?