【问题标题】:Parse youtube video ID from multiple different link style/formats? [duplicate]从多种不同的链接样式/格式解析 youtube 视频 ID? [复制]
【发布时间】:2015-10-20 05:34:31
【问题描述】:

我正在寻找一种使用正则表达式扫描以下场景并返回特定视频的 youtube 视频 ID 的方法。

youtu.be/dQw4w9WgXcQ
www.youtube.com/watch?v=dQw4w9WgXcQ
https://www.youtube.com/watch?v=dQw4w9WgXcQ
https://www.youtube.com/watch?v=dQw4w9WgXcQ&index=2&list=PLsBI83Bzbnacim19bTUONClIGpT22Zfkw

以下所有情况都应仅捕获 dQw4w9WgXcQ(原始视频 ID)

知道我会使用什么正则表达式来捕获它吗?请记住,YouTube 链接还可以包含 -_,因此 \w+ 不会始终正确捕获视频 ID。

谢谢!

【问题讨论】:

  • 所以/https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube(?:-nocookie)?\.com\S*[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/ig 会给我我想要的...?有什么办法……缩短这个?

标签: javascript regex


【解决方案1】:

我自己想出来的。我相信这是"How to find all Youtube video ids in a string using a regex?" 的副本,但是它提供了一个非常冗长的正则表达式来接受许多我不会遇到的情况。

以下正则表达式有效并仅捕获了我想要的内容:/(?:\.be\/|watch\?v=)([^\s&]+)/

对不起,谢谢!

【讨论】:

    猜你喜欢
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    相关资源
    最近更新 更多