我正在尝试找到从 URL 获取 vimeo 视频 ID 的最佳正则表达式。
示例网址:
https://vimeo.com/11111111
http://vimeo.com/11111111
https://www.vimeo.com/11111111
http://www.vimeo.com/11111111
https://vimeo.com/channels/11111111
http://vimeo.com/channels/11111111
https://vimeo.com/groups/name/videos/11111111
http://vimeo.com/groups/name/videos/11111111
https://vimeo.com/album/2222222/video/11111111
http://vimeo.com/album/2222222/video/11111111
https://vimeo.com/11111111?param=test
http://vimeo.com/11111111?param=test
我当前的正则表达式不起作用:
/http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/
游乐场和测试在这里: http://jsbin.com/asuqic/1/edit?javascript,live http://jsbin.com/asuqic/1/edit?javascript,live
Update:我注意到这个答案时不时地受到一些关注(通过投票或评论)。答案是两年多了,并且可能支持的 URL 类型不再是最新的。我不会积极维护这个正则表达式 - 它只是为了回答问题,因此只处理那里列出的格式。使用此工具需要您自担风险,或者更好的是,仅将其用作基于最新且全面的 URL 格式列表开发您自己的正则表达式的起点。
API 解决方案请参阅 @l2aelba 的回答https://stackoverflow.com/a/37695721/622813 https://stackoverflow.com/a/37695721/622813
这将是完整的正则表达式,它也确保格式正确:
/https?:\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|)(\d+)(?:$|\/|\?)/
您现在可以在捕获组中检索组名称1
(如果存在),捕获组中的专辑 ID2
(如果存在)和捕获组中的视频 ID3
(总是)。
Demo http://jsbin.com/asuqic/184/edit?javascript,live
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)