gpt4 book ai didi

javascript - 正则表达式从 youtube url 中提取视频 ID 或播放列表 ID

转载 作者:搜寻专家 更新时间:2023-11-01 04:53:58 25 4
gpt4 key购买 nike

我想知道如何使用单个正则表达式根据 url 提取 youtube 视频 ID 或播放列表 ID。正则表达式还应确保域是 youtube.com以下是我需要的一些结果:

提取播放列表 ID

    https://www.youtube.com/playlist?list=PLuC2HflhhpLGQ4RgqA76_Gv52fGA0909r
www.youtube.com/playlist?list=PLuC2HflhhpLGQ4RgqA76_Gv52fGA0909r
http://www.youtube.com/playlist?list=PLuC2HflhhpLGQ4RgqA76_Gv52fGA0909r
https://www.youtube.com/embed/videoseries?list=PLuC2HflhhpLGQ4RgqA76_Gv52fGA0909r

提取视频 ID

https://www.youtube.com/watch?v=fqMfRi2gJok&index=1&list=PLuC2HflhhpLGQ4RgqA76_Gv52fGA0909r
https://www.youtube.com/watch?v=fqMfRi2gJok
http://youtu.be/cCnrX1w5luM
http://youtube.com/embed/cCnrX1w5luM
http://youtube.com/v/cCnrX1w5luM
https://www.youtube.com/v/cCnrX1w5luM
www.youtube.com/v/cCnrX1w5luM
youtube.com/v/cCnrX1w5luM

这些只是示例网址。我需要为所有可能的 YouTube 链接结构提取相应的 ID。

简而言之,提取视频 ID,如果不存在,则获取播放列表 ID。

最佳答案

你的问题显然有两种模式

第一个:

^.*?(?:v|list)=(.*?)(?:&|$)

对于任何具有显式属性的 url,或者您可以说它们在 url 中具有 = 符号。

解释

^.*?(?:v|list)=:任何字符串,直到单词 v=list= 我们更喜欢vlist 上,

(.*?)(?:&|$):任何以 & 符号或结束行符号 $ 结尾的字符串这里我们更喜欢 & 而不是 $

第二个:

^(?:(?!=).)*\/(.*)$

对于任何没有属性或url中没有=符号的url。

解释

^(?:(?!=).)*\/:任何没有 = 符号的字符串(此处由负先行处理 (?!=)) 直到 / 符号,

(.*)$:直到行尾的任何字符串。

将它们组合成一个我们得到的正则表达式

^(?:https?:\/\/)?(?:www\.)?youtu\.?be(?:\.com)?.*?(?:v|list)=(.*?)(?:&|$)|^(?:https?:\/\/)?(?:www\.)?youtu\.?be(?:\.com)?(?:(?!=).)*\/(.*)$

这里,

添加

(?:https?:\/\/)?(?:www\.)?youtu\.?be(?:\.com)? 来处理各种形式的www.youtube.com的网址

这应该可以帮助你得到你想要的

参见:DEMO

重要提示:这个问题,提问者想从www.youtube.com中提取id他更喜欢“视频 ID”而不是“播放列表 ID”。

关于javascript - 正则表达式从 youtube url 中提取视频 ID 或播放列表 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32295157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com