Regex -匹配第二次出现的字符之间的字符串

vhmi4jdf  于 2023-05-01  发布在  其他
关注(0)|答案(2)|浏览(160)

我有一个文本字符串,看起来像这样:

?q=search&something=that&this=example/

在这个例子中,我需要获取that。我使用下面的正则表达式:
var re = new RegExp("\&(.*?)\&");
re[1]是什么意思:
something=that-但只需要that
我试过:
var re = new RegExp("\=(.*?)\&");
但这给了我从第一个等号开始的一切,所以:
search&something=that
是输出,当它只需要:
that
我需要瞄准2个字符的第二次出现,并抓住它们之间的东西。我该怎么做?

dy2hfwbg

dy2hfwbg1#

你可以用

/something=([^&]+)/

并取第一组,参见JavaScript示例:

let url = '?q=search&something=that&this=example/';
let regex = /something=([^&]+)/
let match = regex.exec(url);
console.log(match[1]);
kwvwclae

kwvwclae2#

split似乎更适合您的情况:
"?q=search&something=that&this=example/".split("&")[1].split("=")[1]
然后你也可以实现一个简单的方法来提取任何想要的值:

function getValue(query, index) {
   const obj = query.split("&")[index];
   if(obj) obj.split("=")[1]
}

getValue("?q=search&something=that&this=example/", 1);

相关问题