使用javascript拆分CSV

时间:2013-10-06 10:53:16

标签: javascript regex csv

有没有办法用javascript拆分CSV字符串,其中分隔符也可以作为转义值出现。其他正则表达式实现通过lookbehind解决了这个问题,但由于javascript不支持lookbehind,我想知道如何使用正则表达式以一种整齐的方式实现这一点。

csv行可能看起来像这样

"This is\, a value",Hello,4,'This is also\, possible',true

必须将其拆分为(包含的字符串)

[0] => "This is\, a value"
[1] => Hello
[2] => 4
[3] => 'This is also\, possible'
[4] => true

4 个答案:

答案 0 :(得分:1)

不要尝试拆分,而是可以尝试全局匹配所有不具有此模式的,

/"[^"]+"|'[^']+'|[^,]+/g

答案 1 :(得分:0)

例如,您可以使用此正则表达式:

(.*?[^\\])(,|$)

正则表达式需要一切。*?直到第一个逗号,它前面没有\或行尾

答案 2 :(得分:0)

这是一些将csv更改为json的代码(假设第一行支持名称)。您可以参加第一部分(array2d),并轻松完成其他操作。

aggregate(df[, 2:4], by = list(condition = df$x <= 2), FUN = sum)

答案 3 :(得分:0)

不幸的是,这不适用于Firefox,仅适用于Chrome和Edge:

"abc\\,cde,efg".split(/(?<!\\),/)将产生["abc\,cde", "efg"]

您需要在第二步中删除所有(未转义的)转义符。