我有一个模糊的字符串:
foo,bar,c;qual="baz,blurb",d;junk="quux,syzygy"
Run Code Online (Sandbox Code Playgroud)
我想用逗号分割 - 但我需要在引号中忽略逗号.我怎样才能做到这一点?好像正则表达式方法失败了; 我想我可以在看到引号时手动扫描并进入不同的模式,但是使用预先存在的库会更好.(编辑:我想我的意思是已经是JDK的一部分或已经是Apache Commons等常用库的一部分的库.)
上面的字符串应该分成:
foo
bar
c;qual="baz,blurb"
d;junk="quux,syzygy"
Run Code Online (Sandbox Code Playgroud)
注意:这不是CSV文件,它是包含在具有更大整体结构的文件中的单个字符串
我的程序从文件中读取一行.这一行包含逗号分隔的文本,如:
123,test,444,"don't split, this",more test,1
Run Code Online (Sandbox Code Playgroud)
我想分裂的结果是这样的:
123
test
444
"don't split, this"
more test
1
Run Code Online (Sandbox Code Playgroud)
如果我使用String.split(","),我会得到这个:
123
test
444
"don't split
this"
more test
1
Run Code Online (Sandbox Code Playgroud)
换句话说:子字符串中的逗号"don't split, this"不是分隔符.怎么处理这个?
在此先感谢..雅各布
我正在寻找[a, b, c, "d, e, f", g, h]变成6个元素的数组:a,b,c,"d,e,f",g,h.我是RegEx的一个菜鸟,所以任何帮助都很棒.我试图通过Javascript来做到这一点.这是我到目前为止:
str = str.split(/,+|"[^"]+"/g);
Run Code Online (Sandbox Code Playgroud)
但是现在它正在拆分双引号中的所有内容,这是不正确的.谢谢你的帮助.
编辑:好的抱歉,我的措辞非常糟糕.我被给了一个字符串而不是一个数组.
var str = 'a, b, c, "d, e, f", g, h';
Run Code Online (Sandbox Code Playgroud)
我希望使用类似"拆分"功能的方法将其转换为数组.
我有一个像下面这样的字符串
var str="A,B,C,E,'F,G,bb',H,'I9,I8',J,K"
Run Code Online (Sandbox Code Playgroud)
我想在逗号上拆分字符串.但是,如果某些内容在单引号内,我需要它来忽略逗号,如下所示.
A
B
C
E
F,G,bb
H
I9,I8
J
K
Run Code Online (Sandbox Code Playgroud)