gpt4 book ai didi

javascript - 从特定格式的字符串中获取变量列表

转载 作者:行者123 更新时间:2023-11-30 14:03:27 25 4
gpt4 key购买 nike

我有一个复杂的字符串,它可以具有特定格式的变量,如 /##{[^}{\(\)\[\]\-\+\*\/]+?}##/g 我想将这些变量提取到一个数组中。

例如

var x= "sgsegsg##{xx}gerweg##{xx1}##rgewrgwgwrg}##ferwfwer##{xx2}rgrg##{xx3}####{xx4}####{errg}}}";

function getVariableNames (param) {
return param.match(/(##{[^}{\(\)\[\]\-\+\*\/]+?}##)+?/g)
}

getVariableNames(x);

以上行返回 ["##{xx1}##", "##{xx3}##", "##{xx4}##"]

我想在哪里获取 ['xx1', 'xx3', 'xx4']

最佳答案

根据您的模式,因为 ## 中的部分不会包含花括号,只需重复非花括号就足够了:[^}]+。匹配重复的非括号字符,然后遍历匹配并提取捕获组:

const str = "sgsegsg##{xx}gerweg##{xx1}##rgewrgwgwrg}##ferwfwer##{xx2}rgrg##{xx3}####{xx4}####{errg}}}";
const pattern = /##{([^}]+)}##/g;
let match;
const matches = [];
while (match = pattern.exec(str)) {
matches.push(match[1]);
}
console.log(matches);

在较新的环境中,您可以向后查找 ##{:

const str = "sgsegsg##{xx}gerweg##{xx1}##rgewrgwgwrg}##ferwfwer##{xx2}rgrg##{xx3}####{xx4}####{errg}}}";
const pattern = /(?<=##{)[^}]+(?=}##)/g;
console.log(str.match(pattern));

关于javascript - 从特定格式的字符串中获取变量列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55887648/

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