在正则表达式(Javascript)中分隔捕获组[重复]
Posted
技术标签:
【中文标题】在正则表达式(Javascript)中分隔捕获组[重复]【英文标题】:Delimit capture group in regex (Javascript) [duplicate] 【发布时间】: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 而不是额外参数
【问题讨论】:
用[^&]
替换.
【参考方案1】:
改为这样做:
^https:\/\/(?:[^\.]+\.)?youtube\.com\/watch\?v=([^&\s]*)
不捕获所有内容 (.
),只捕获不是 &
的非空白字符。
Demo
【讨论】:
以上是关于在正则表达式(Javascript)中分隔捕获组[重复]的主要内容,如果未能解决你的问题,请参考以下文章