需要正则表达式优酷视频ID

时间:2012-01-10 06:58:44

标签: php regex

以下是用户可能提供的输入。

  

<embed src="http://player.youku.com/player.php/sid/XMTQxNzMxMjI0/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" allowFullscreen="true" type="application/x-shockwave-flash"></embed>

  

http://player.youku.com/player.php/sid/XMTQxNzMxMjI0/v.swf

  

http://v.youku.com/v_show/id_XMTQxNzMxMjI0.html

我需要一个正则表达式来从提供的输入中提取视频ID。

2 个答案:

答案 0 :(得分:4)

这是我将如何做到这一点。第一个捕获组中的id。

youku\.com/(?:player.php/sid/|v_show/id_)([a-zA-Z0-9]+)(?:/|\\.)

我现在明白你使用php作为应用程序语言,这会改变一些事情。你必须用你自己选择的形式角色开始和结束正则表达式。对于这个正则表达式,我使用哈希字符,因为它在正则表达式中的任何地方都没有使用:

$regExp = "#youku\.com/(?:player.php/sid/|v_show/id_)([a-zA-Z0-9]+)(?:/|\\.)#";

答案 1 :(得分:1)

这是正则表达式(我能为您提供的详细信息提供最好的信息,包括大量猜测)

(?<=sid\/|\/id_)[^.\/]+

好的,我会提供一些比你更多的细节:

  • 查看并测试您的正则表达式here on Regexr

  • regular-expressions.info上查找更多详细信息并学习正则表达式 (提示:我使用了lookbehind断言,交替,否定字符类和量词)