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

Jef*_*eff 0 javascript regex replace string-parsing node.js

我收到的字符串中已经有括号,需要将其解析为数组数组。此外,元素之间也没有逗号。

我收到类似的内容:

[[[a] b] c [d]]
Run Code Online (Sandbox Code Playgroud)

并且需要将其转换为:

[[['a'], 'b'], 'c', ['d']
Run Code Online (Sandbox Code Playgroud)

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

我已经尝试过JSON.parse,但在此之前我需要做一些帮助

  1. 我需要在所有正确的位置添加逗号
  2. 我需要将方括号内的值括在引号中。

Bar*_*mar 5

使用正则表达式将引号括在不包含空格或方括号的任何序列周围,并用逗号替换所有空格。然后将其解析为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);
Run Code Online (Sandbox Code Playgroud)