YouTube和Vevo视频是否有任何正则表达式公式?
以下是一些示例代码:
YouTube:CevxZvSJLk8
Vevo:USUV71402382
据我所知,该模式似乎对于youtube视频来说是小写字母。如何使用正则表达式正确检测到它们?
为了清楚起见,这是我的问题:
Vevo代码的模式?
我正在尝试将代码放在网址的最后一部分:
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个字符。
我能找到的最古老的vevo视频是从他们的facebook中提取的,具有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";
}
关于php - 用于YouTube或Vevo的正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27285566/