正则表达式解析youtube yid

时间:2010-04-08 01:58:49

标签: 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

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

谢谢。

2 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:6)

对于它的价值,这适用于http://rubular.com/

(v=|\/)([\w-]+)(&.+)?$

抓住第二个捕获组:

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

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