gpt4 book ai didi

javascript - RegEx 使用 RegExp.exec 从字符串中提取所有匹配项

转载 作者:行者123 更新时间:2023-11-28 03:32:43 25 4
gpt4 key购买 nike

我正在尝试解析以下类型的字符串:

[key:"val" key2:"val2"]

其中有任意 key:"val"对。我想获取键名和值。对于那些好奇的人,我正在尝试解析任务战士的数据库格式。

这是我的测试字符串:

[description:"aoeu" uuid:"123sth"]

这意味着除了空格之外,任何东西都可以出现在键或值中,冒号周围没有空格,并且值总是在双引号中。

在节点中,这是我的输出:

[deuteronomy][gatlin][~]$ node
> var re = /^\[(?:(.+?):"(.+?)"\s*)+\]$/g
> re.exec('[description:"aoeu" uuid:"123sth"]');
[ '[description:"aoeu" uuid:"123sth"]',
'uuid',
'123sth',
index: 0,
input: '[description:"aoeu" uuid:"123sth"]' ]

但是 description:"aoeu" 也匹配此模式。我怎样才能取回所有匹配项?

最佳答案

继续循环调用re.exec(s)以获取所有匹配项:

var re = /\s*([^[:]+):\"([^"]+)"/g;
var s = '[description:"aoeu" uuid:"123sth"]';
var m;

do {
m = re.exec(s);
if (m) {
console.log(m[1], m[2]);
}
} while (m);

用这个 JSFiddle 试试:https://jsfiddle.net/7yS2V/

关于javascript - RegEx 使用 RegExp.exec 从字符串中提取所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58030838/

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