通过正则表达式拆分csv-line

时间:2013-12-11 10:55:12

标签: regex csv

你能帮我解析一下使用正则表达式的csv-line吗? 例如:1,"2,3","2,3,""4""",,5

我需要获取此数组['1' '2,3' '2,3,"4"' '' '5']

我试着写这个正则表达式。但它只能通过分隔符','来分割我的行。

(?<=,|^)([^,]*)

我发现这个正则表达式,但它的工作不正确的空单元格(,,)

(\s*'[^']+'|\s*[^,]+)(?=,|$)

你能用正确的regexp来解析任何字符串吗?

1 个答案:

答案 0 :(得分:2)

以下是您正在寻找的正则表达式:

(?<=^|,)(?:[^,"]+|")?(?=,|$)|(?<=^|,)".*?"(?=,|$)

描述

Regular expression visualization

演示

https://www.debuggex.com/r/KVwn6W1zKG4tTXSI