Существует ли какая-либо формула регулярного выражения для видео Youtube и Vevo?
Вот пример кода:
Youtube: CevxZvSJLk8
Vevo: USUV71402382
Из того, что я знаю, шаблон, кажется, имеет маленькие буквы для видео на YouTube. Как правильно определить их с помощью регулярных выражений?
Просто чтобы прояснить, вот мои вопросы:
Я пытаюсь поместить коды в последней части URL:
Vevo: http://cache.vevo.com/assets/html/embed.html?video=USUV70904460
YouTube: http://www.youtube.com/embed/P1j-6vRykFs
Код будет выглядеть так:
function get_video_url($video_code) {
if (preg_match_all('<Youtube regex code>',$video_code)) {
return "http://www.youtube.com/embed/" . $code;
} elseif (preg_match_all('<Vevo regex code>',$video_code)) {
return "http://cache.vevo.com/assets/html/embed.html?video=" . $code;
} else {
return "Youtube or vevo link anyway.";
}
}
Мне просто нужно регулярное выражение, хотя.
Из всего, что я могу сказать, коды VEVO имеют длину 12 символов, а видео на YouTube — 11 символов.
Самое старое видео, которое я могу найти, взято с их фейсбука, имеет 12-значный код, заглавные буквы http://www.vevo.com/watch/lady-gaga/Speechless-(Live-At-The-VEVO-Launch-Event)/USUV70904460
Как и самое новое.
Здесь, однако, PHP-код, если вы предпочитаете регулярное выражение.
if (preg_match("/[^\w-]+/",$video_code)) {
return "Invalid video code";
} else if (preg_match("/^[A-Z0-9]+$/",$video_code)) {
return "http://cache.vevo.com/assets/html/embed.html?video=" . $video_code;
} else {
return "http://www.youtube.com/embed/" . $video_code;
}
После некоторых исследований я нашел это:
Источники.
# 2 Предоставляет замечательное регулярное выражение, которое по сути работает так:
if (preg_match("/^([A-Z]{2}[A-Z0-9]{3}\d{2}\d{5})$/",$video_code)) {
return "http://cache.vevo.com/assets/html/embed.html?video=" . $video_code;
} else if (preg_match("/^[\w-]{11}+$/",$video_code)) {
return "http://www.youtube.com/embed/" . $video_code;
} else {
return "Invalid video code";
}
Других решений пока нет …