我有一个像这样的字符串:
'a, b, "c,d" e, f,'
我想使用逗号字符作为分隔符拆分我的字符串,但在括号之外。我的结果对象集应包含以下元素:
a
b
"c,d" e
f
我怎样才能做到这一点?
我有一个像这样的字符串:
'a, b, "c,d" e, f,'
我想使用逗号字符作为分隔符拆分我的字符串,但在括号之外。我的结果对象集应包含以下元素:
a
b
"c,d" e
f
我怎样才能做到这一点?
s = 'a, b, "c,d" e, f,';
console.log(s.match(/("[^"]+"|[^,])+/g));
yield [ 'a', ' b', ' "c,d" e', ' f' ]
,它有额外的空格,但你可以修剪它们。
编辑:错过了e
......现在已修复。
解释:
(A|B)+
首选A
(这是一个带引号的字符串)而不是 B,它是字符串的未引用部分。它匹配"c,d"
,然后因为+
它继续匹配e
。"[^"]+"
匹配 a"
后跟所有非"
, 后跟单个"
.[^,]
匹配任何非"
/regex/g
使全局(匹配所有匹配项,而不仅仅是第一个匹配项)