正则表达式解析youtube yid

put*_*rti 5 php regex youtube

示例网址

http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo
http://www.youtube.com/watch?v=cKZDdG9FTKY&feature=channel
http://www.youtube.com/watch?v=yZ-K7nCVnBI&playnext_from=TL&videos=osPknwzXEas&feature=sub
http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I
Run Code Online (Sandbox Code Playgroud)

任何将从所有这4个用例中提取正确YID的正则表达式?第一种情况特别奇怪.

谢谢.

web*_*at0 14

(?<=v=)[a-zA-Z0-9-_]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+
Run Code Online (Sandbox Code Playgroud)

这有效.http://i.imgur.com/SQJW2.jpg


Joe*_*Sak 6

对于它的价值,这可以在http://rubular.com/上运行

(v=|\/)([\w-]+)(&.+)?$
Run Code Online (Sandbox Code Playgroud)

为这些抓住第二个捕获组:

http://www.youtube.com/user/SilkRoadTheatre#p/a/u/2/6dwqZw0j_jY
http://youtu.be/6dwqZw0j_jY
http://www.youtube.com/watch?v=6dwqZw0j_jY&feature=youtu.be
http://youtu.be/afa-5HQHiAs
http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo
http://www.youtube.com/watch?v=cKZDdG9FTKY&feature=channel
http://www.youtube.com/watch?v=yZ-K7nCVnBI&playnext_from=TL&videos=osPknwzXEas&feature=sub
http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I
Run Code Online (Sandbox Code Playgroud)

(编辑让我将URL作为代码标记,抱歉)

  • 我见过的最好的正则表达式.你只需要检查匹配组2,但它非常整洁.BTW:这返回匹配组1中的id` [v = |\_]([\ w - ] +)(&.+)?$` (2认同)