获取没有预设参数的整个网址

时间:2016-07-13 03:47:05

标签: regex

所以我有这个正则表达式来获取YouTube链接

/(http|https):\/\/www\.youtube\.com\/watch\?v=(\w+)/i

但问题是,它不会结束这样的链接:

https://www.youtube.com/watch?v=videoID&sdfgsdfgsdfg;jsfdg;lkjsdf;gkj

它选择https://www.youtube.com/watch?v=videoID并单独留下&sdfgsdfgsdfg;jsfdg;lkjsdf;gkj。我希望它在提取视频ID的同时获取整个字符串。

1 个答案:

答案 0 :(得分:0)

试试这个

/https?:\/\/www\.youtube\.com\/watch\?.*?&?v=(\w+)(?:&[^\s]+)?/i
  • https?(?:http|https)相同,您没有说您需要捕获协议
  • /watch\? ...
    • .*? - 使用任何其他查询参数
    • &? - 如果还有其他查询参数,则会有&
    • v=(\w+)(?:&[^\s]+)? - 捕获VideoID,并可选地将其余网址捕获到空白