如何从YouTube视频链接中提取和验证ID?

时间:2013-10-04 14:16:54

标签: regex youtube

我发现这个RegEx用于提取youtube ID:

#^http(?:s?)://(?:www\.)?youtu(?:be\.com/watch\?(?:.*?&(?:amp;)?)?v=|\.be/)([\w‌​\-]+)(?:&(?:amp;)?[\w\?=]*)?#i

现在我正在尝试修改RegEx,以此格式提取youtube网址的youtube ID:

  

http://www.youtube.com/watch?v=ESUYMoJVpYo&feature=share&a=rRL4kwOAewcP9KzId6Ks4A

如何确保从所有可能的网址格式中提取ID ...

1 个答案:

答案 0 :(得分:1)

通常不会通过正则表达式解析URL。如果你想以任何方式修改它们,那么你可能不应该使用它们。

网址使用所谓的Query String将参数传递给网页。查询字符串的开头用问号标记,后跟名称/值对的&符分隔列表。

例如,使用您自己的网址:http://www.youtube.com/watch?v=ESUYMoJVpYo&feature=share&a=rRL4kwOAewcP9KzId6Ks4A

Page request: www.youtube.com/watch
Whole query string: ?v=ESUYMoJVpYo&feature=share&a=rRL4kwOAewcP9KzId6Ks4A
Name/Value pairs:
  v       -> ESUYMoJVpYo
  feature -> share
  a       -> rRL4kwOAewcP9KzId6Ks4A

如果要解析/修改URL,请通过分解查询字符串来执行此操作。这比尝试为它编写RegEx要可靠得多。