gpt4 book ai didi

javascript - 正则表达式:从字符到行尾匹配,没有最后一个匹配组

转载 作者:行者123 更新时间:2023-12-02 16:38:58 25 4
gpt4 key购买 nike

我想从某些网址中提取 q 参数:

.com/?gws_rd=ssl#q=test
.com/search?q=something+else&source=123

这是我想出的一个正则表达式:q=(.*?)(&|$)。当&终止时,结果是:

["q=test", "test", "&"]

否则,当它到达行尾时:

["q=test", "test", ""]

这可行,但似乎不对。

有没有办法完全不包含最后一个比赛组,因为我对此不感兴趣?

最佳答案

将最后一组转变为正向前瞻断言。

(?=&|$) 断言匹配后面必须跟有 & 或行尾 anchor $

q=(.*?)(?=&|$)

DEMO

> ".com/?gws_rd=ssl#q=test".match(/q=(.*?)(?=&|$)/)
[ 'q=test',
'test',
index: 17,
input: '.com/?gws_rd=ssl#q=test' ]

仅打印捕获组内的字符。

> var s = ".com/?gws_rd=ssl#q=test"
undefined
> console.log(/q=(.*?)(?=&|$)/.exec(s)[1]);
test

关于javascript - 正则表达式:从字符到行尾匹配,没有最后一个匹配组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674650/

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