javascript - 根据最后一次出现的 , 和 _ 分割字符串

标签 javascript string associative-array

我有一个看起来像 APP1_ENV1,ENV2,ENV3,APP2_ENV4,ENV5,APP3_ENV1 的字符串如何分割这个字符串,以便我得到像应用程序及其以下环境的关联数组? 输出示例 - APP1[ENV1,ENV2,ENV3],APP2[ENV4,ENV5],APP3[ENV1]

最佳答案

我想你想要类似的东西

input.replace(/([^,_]+)_((?:[^,_]+,)*?[^,_]+)(?=$|,[^,_]+_)/g, "$1[$2]")

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"]}

关于javascript - 根据最后一次出现的 , 和 _ 分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29330815/

相关文章:

python - 关联矩阵?

javascript - 如何使用 Javascript 从地址栏中获取哈希之前的所有内容?

javascript - 如何使用 JavaScript 更改基于 onclick 的文本?

java - 如何将二维字符串数组转换为一维字符串数组?

python - 如何比较同时包含字符串和整数的列? python Pandas

php - 在 PHP 中,是否有一个函数可以返回由关联数组数组中的键值组成的数组?

c++ - 我怎样才能有一个具有许多值的关联数组

javascript - 如何使用 Aurelia 的路由器定义和呈现子菜单项

javascript - 通过 JavaScript 验证单选按钮

将 double / float 转换为字符串