按空格分割字符串,但不在括号内

yck*_*art 4 javascript regex string whitespace split

我有一个像这样的字符串foo bar(5) baz(0, 3),需要根据每个部分之间的空格将其分成几个部分。所以结果需要如下所示:['foo', 'bar(5)', 'baz(0, 3)']

我尝试过这样的事情:

var str = 'foo bar(5) baz(0, 3)';
str.split(' '); // => ['foo', 'bar(5)', 'baz(0,', '3)']
Run Code Online (Sandbox Code Playgroud)

正如你所看到的结果不是我所期望的......有什么想法如何正确地分割它吗?我认为现在轮到RegExp这里的专家了......

更新

,一种简单的方法是将所有内容替换为,

str.replace(/, /g, ',').split(' ');
Run Code Online (Sandbox Code Playgroud)

但对我来说这看起来不太漂亮......

Dog*_*ert 5

您可以用于.match此用途。

str.match(/\w+(\(.*?\))?/g)
=> ["foo", "bar(5)", "baz(0, 3)"]
Run Code Online (Sandbox Code Playgroud)