【问题标题】:Delimit capture group in regex (Javascript) [duplicate]在正则表达式(Javascript)中分隔捕获组[重复]
【发布时间】:2022-01-22 01:22:33
【问题描述】:

我有以下正则表达式:/^https:\/\/([^\.]+\.)?youtube\.com\/watch\?v=(.*)/

这是匹配的 youtube 网址。

正则表达式的最后一部分是一个捕获组,应该与视频的 id ?v=(.*)/ 匹配 例如在https://www.youtube.com/watch?v=l_MHkr_uYww 中,它将返回l_MHkr_uYww

这部分有效,但是在 id 之后,您可以有几个参数并以例如结束

https://www.youtube.com/watch?v=l_MHkr_uYww&ab_channel=TeslaIntelligenceUK

然后当前捕获组将返回l_MHkr_uYww&ab_channel=TeslaIntelligenceUK

我想更改正则表达式,以便当前捕获组只匹配,直到找到&,所以我只得到 id 而不是额外参数

【问题讨论】:

  • [^&]替换.

标签: javascript regex capture-group


【解决方案1】:

改为这样做:

^https:\/\/(?:[^\.]+\.)?youtube\.com\/watch\?v=([^&\s]*)

不捕获所有内容 (.),只捕获不是 & 的非空白字符。

Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2011-09-19
    • 1970-01-01
    • 2017-09-13
    • 2011-03-11
    相关资源
    最近更新 更多