0

それに含まれるYouTube IDに対応するために、この正規表現を改善するにはどうすればよい-ですか? 他のスレッドで見つけたいくつかの正規表現をテストしましたが、それらは-ID 内で考慮されませんでした。

YouTube のリンクは非常に複雑な場合があります。

$url = 'http://www.youtube.com/watch?v=iol0B-clFFM"; //valid youtube link
$pattern = "/(?<=(?:v|i)=)[a-zA-Z0-9-]+(?=&)|(?<=(?:v|i)\/)[^&\n]+|(?<=embed\/)[^\"&\n]+|(?<=(?:v|i)=)[^&\n]+|(?<=youtu.be\/)[^&\n]+/";

preg_match($pattern,$url,$matches);

echo $matches[0];

iol0B上記の結果は、直前に停止するだけを返します-

4

1 に答える 1

1

あなたのパターンは機能しますが、おそらくそれを短くすることができます:

$pattern = '~(?<=[vi][=/]|youtu\.be/|embed/)[a-z0-9-]+~i';
于 2013-10-26T07:15:52.873 に答える