根据 , 和 _ 的最后一次出现拆分字符串
Splitting string based on last occurance of , and _
我有一个看起来像 APP1_ENV1,ENV2,ENV3,APP2_ENV4,ENV5,APP3_ENV1 的字符串 如何分割这个字符串,以便我得到像应用程序一样的关联数组它的以下环境?
示例输出 - APP1[ENV1,ENV2,ENV3],APP2[ENV4,ENV5],APP3[ENV1]
var str = "APP1_ENV1,ENV2,ENV3,APP2_ENV4,ENV5,APP3_ENV1";
var obj = {};
for(var i=1;i<str.split("APP").length;i++){
var cont = str.split("APP")[i].slice(0,-1);
obj["APP"+cont.split("_")[0]]=cont.split("_")[1].split(",")
}
现在obj
包含
{"APP1":["ENV1","ENV2","ENV3"],"APP2":["ENV4","ENV5"],"APP3":["ENV"]}
根据您的要求。
我想你想要这样的东西
input.replace(/([^,_]+)_((?:[^,_]+,)*?[^,_]+)(?=$|,[^,_]+_)/g, "[]")
APP1_ENV1,ENV2,ENV3,APP2_ENV4,ENV5,APP3_ENV1
=> APP1[ENV1,ENV2,ENV3],APP2[ENV4,ENV5],APP3[ENV1]
APP1_ENV1,ENV2,ENV3,TREND2_ENV4,ENV5,JADE3_ENV1
=> APP1[ENV1,ENV2,ENV3],TREND2[ENV4,ENV5],JADE3[ENV1]
对于实际解析,我建议
input.split(/,(?=[^,_]+_)/g).reduce(function(o, str) {
var parts = str.split("_");
o[parts[0]] = parts[1].split(",");
return o;
}, {});
APP1_ENV1,ENV2,ENV3,APP2_ENV4,ENV5,APP3_ENV1
=> {"APP1":["ENV1","ENV2","ENV3"],"APP2":["ENV4","ENV5"],"APP3":["ENV1"]}
APP1_ENV1,ENV2,ENV3,TREND2_ENV4,ENV5,JADE3_ENV1
=> {"APP1":["ENV1","ENV2","ENV3"],"TREND2":["ENV4","ENV5"],"JADE3":["ENV1"]}
我有一个看起来像 APP1_ENV1,ENV2,ENV3,APP2_ENV4,ENV5,APP3_ENV1 的字符串 如何分割这个字符串,以便我得到像应用程序一样的关联数组它的以下环境? 示例输出 - APP1[ENV1,ENV2,ENV3],APP2[ENV4,ENV5],APP3[ENV1]
var str = "APP1_ENV1,ENV2,ENV3,APP2_ENV4,ENV5,APP3_ENV1";
var obj = {};
for(var i=1;i<str.split("APP").length;i++){
var cont = str.split("APP")[i].slice(0,-1);
obj["APP"+cont.split("_")[0]]=cont.split("_")[1].split(",")
}
现在obj
包含
{"APP1":["ENV1","ENV2","ENV3"],"APP2":["ENV4","ENV5"],"APP3":["ENV"]}
根据您的要求。
我想你想要这样的东西
input.replace(/([^,_]+)_((?:[^,_]+,)*?[^,_]+)(?=$|,[^,_]+_)/g, "[]")
APP1_ENV1,ENV2,ENV3,APP2_ENV4,ENV5,APP3_ENV1
=> APP1[ENV1,ENV2,ENV3],APP2[ENV4,ENV5],APP3[ENV1]
APP1_ENV1,ENV2,ENV3,TREND2_ENV4,ENV5,JADE3_ENV1
=> APP1[ENV1,ENV2,ENV3],TREND2[ENV4,ENV5],JADE3[ENV1]
对于实际解析,我建议
input.split(/,(?=[^,_]+_)/g).reduce(function(o, str) {
var parts = str.split("_");
o[parts[0]] = parts[1].split(",");
return o;
}, {});
APP1_ENV1,ENV2,ENV3,APP2_ENV4,ENV5,APP3_ENV1
=> {"APP1":["ENV1","ENV2","ENV3"],"APP2":["ENV4","ENV5"],"APP3":["ENV1"]}
APP1_ENV1,ENV2,ENV3,TREND2_ENV4,ENV5,JADE3_ENV1
=> {"APP1":["ENV1","ENV2","ENV3"],"TREND2":["ENV4","ENV5"],"JADE3":["ENV1"]}