YouTube和Vevo视频是否有任何正则表达式公式?

以下是一些示例代码:
YouTube:CevxZvSJLk8
Vevo:USUV71402382

据我所知,该模式似乎对于youtube视频来说是小写字母。如何使用正则表达式正确检测到它们?

为了清楚起见,这是我的问题:

  • 什么是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;
      }
    

    经过一番研究,我发现了这一点:

    资料来源。
  • How to validate youtube video ids?
  • Regex vevo URL video-id

  • #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/

    10-12 02:11