将包含csv数据的字符串拆分为带逗号的数组的问题

时间:2019-03-29 20:33:30

标签: arrays node.js csv amazon-s3

我正在尝试读取一个包含csv数据的s3对象,并将其转换为字符串变量,到目前为止,到目前为止一切正常,现在,当我尝试使用arr = body.match(/.*/g).map(row => row.split(","));将该数据读取到数组中时,我看到例如,当我将"数组中的每个数组元素写入"TEST_SESSION_VALUE4, MSTA_"表中时,列值将嵌入arr中,例如html。因此,在写入"TEST_SESSION_VALUE4, MSTA_"时,该值将分成两个值,从而使html表不均匀

 const body = Buffer.from(data.Body).toString('utf-8'); //this line of code reading s3 object containing csv data and converting into string

当我console.log(body)低于数据时

TEST_SESSION_VALUE1,121,Round1,sev1,1
TEST_SESSION_VALUE2,122,Round2,sev2,2
TEST_SESSION_VALUE2,123,Round3,sev3,3
"TEST_SESSION_VALUE4, MSTA_",124,Round4,sev4,4 //take a look at this row which off from rest of them

前三行很好地适合html表,其中有三行五列。但是,当涉及到最后一行时,由于"TEST_SESSION_VALUE4, MSTA_"分成两个值,因此它占用了额外的列

我尝试了一些类似arr = body.match(/(.*|".*?")/g).map(line => line.split(","))的表达式,但没有得到预期的结果。非常感谢使用符合上述目的的正则表达式。

0 个答案:

没有答案