-1

我发现这个正则表达式用于提取 youtube ID:

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

现在我正在尝试修改正则表达式,以这种格式提取 youtube URL 的 youtube id:

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

如何确保从所有可能的 url 格式中提取 Id...

4

1 回答 1

1

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

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

例如,使用您自己的网址: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 可靠得多。

于 2013-10-04T14:25:29.183 回答