0

我有一个在我的管道中导入 youtube 视频链接的提要,但是 youtube 链接自然会以各种格式显示......

http://youtube.com/onmdclU47Us
http://youtu.be/onmdclU47Us
http://www.youtube.com/watch?feature=player_detailpage&v=onmdclU47Us

以及带有 url 参数的各种其他变体。我正在尝试解析每个链接并获取视频的嵌入链接。这基本上是使用正则表达式函数并将其换成 youtube.com/embed/{video_ID} 。

然而,这并不适用于所有情况......这就是我所拥有的,有什么帮助吗?

.+watch\?v=([0-9a-zA-Z-]+)

&([a-zA-Z0-9_-]+)?=([a-zA-Z0-9_-]+)?.([a-zA-Z0-9_-]+)?

.watch?feature=player_embedded&v=([0-9a-zA-Z-]+)

http://youtu.be/([0-9a-zA-Z-]+)

这些是对的,还是我错过了什么?

4

1 回答 1

0

上一个答案已删除


我刚刚花了一个多小时查看 SO 上的许多“提取 YouTube ID”帖子。我想我已经想出了一个几乎防弹的正则表达式来提取与我发现的完全不同的 id。它也适用于拇指 URL。

首先需要注意的是:

  1. 该 URL 被假定为有效的 youtube 之一。
  2. 其实,就是这样。没有另一个。

然后是这样:

(?:/favicon|%3D|[/=])([\w-]{11})[^\w-]

而已。很简单。看看 - 没有环顾四周。

笔记:

  1. ID 在捕获组 1 中返回。
  2. 将正则表达式添加到前面以实际检测 youtube url 应该不会太难。
于 2013-01-25T00:25:15.497 回答