youtube链接正则表达式

时间:2010-12-28 10:43:29

标签: php regex youtube

我试图让所有youtube链接正常工作,除了youtube.com/v/videoid

只看?v =正在使用这个正则表达式,任何帮助都很棒。

/http:\/\/(?:youtu\.be\/|(?:[a-z]{2,3}\.)?youtube\.com\/watch(?:\?|#\!)v=)([\w-]{11}).*/i

4 个答案:

答案 0 :(得分:7)

网站正则表达式库是一个很好的来源。请尝试以下链接:http://www.regexlib.com/Search.aspx?k=youtube

答案 1 :(得分:5)

/((http:\/\/)?(?:youtu\.be\/|(?:[a-z]{2,3}\.)?youtube\.com\/v\/)([\w-]{11}).*|http:\/\/(?:youtu\.be\/|(?:[a-z]{2,3}\.)?youtube\.com\/watch(?:\?|#\!)v=)([\w-]{11}).*)/i

答案 2 :(得分:3)

这是我的第一个贡献,希望它有所帮助。

$url = "https://www.youtube-nocookie.com/embed/lCpaCAfhCH4";

if (preg_match("/^((https?:\/\/)?(w{0,3}\.)?youtu(\.be|(be|be-nocookie)\.\w{2,3}\/))((watch\?v=|v|embed)?[\/]?(?P<video>[a-zA-Z0-9-_]{11}))/si", $url, $matches)) {

echo $matches['video'];

}

此正则表达式适用于任何youtube网址格式(长,短,嵌入,安全等)

谢谢!

答案 3 :(得分:0)

完成使用正则表达式。这是获取视频ID的更好方法

<?php
$url = "http://www.youtube.com/watch?v=KkMDCCdjyW8&feature=relate";
parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars );
echo $my_array_of_vars['v'];    
  // Output: KkMDCCdjyW8
?>

working here