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

时间:2013-08-12 06:33:55

标签: javascript regex string split whitespace

我有一个像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)']

正如你所看到的结果不是我所期望的......任何想法如何正确分割它?我认为这是RegExp - 大师们的转折......

更新

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

str.replace(/, /g, ',').split(' ');

但这对我来说看起来并不是很好......

1 个答案:

答案 0 :(得分:4)

您可以使用.match

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