如何将带括号的字符串解析为数组数组?

How do I parse a string with brackets into array of arrays?

我收到一个已经包含方括号的字符串,需要将其解析为数组数组。另外,元素之间没有逗号。

我收到了类似于:

[[[a] b] c [d]]

并需要将其转换为:

[[['a'], 'b'], 'c', ['d']

我尝试用方括号和引号替换所有方括号,但这不起作用。例如:[[a] b] 变为 ['['a'] b]

我已经尝试过 JSON.parse 但我需要帮助做几件事才能奏效

  1. 我需要在所有正确的地方添加逗号
  2. 我需要将方括号内的值用引号引起来。

使用正则表达式在任何不包含 space 或方括号的序列两边加上引号,并将所有 space 替换为逗号。然后将其解析为 JSON.

let str = '[[[a] b] c [d]]';
let json = str.replace(/[^ \[\]]+/g, '"$&"').replace(/ +/g, ',');
console.log(json);
let arr = JSON.parse(json);
console.log(arr);