使用Regex以逗号分隔的CSV捕获空值

时间:2014-03-17 16:26:33

标签: regex csv

我有一个CSV文件,我尝试使用正则表达式解析。该文件是根据分隔符,回车等控制的。

我有以下内容将每一行拆分为一个值数组。

/('[^']+'|[^,]+)/g

这种模式存在两个问题,我试图解决这个问题。首先是它打破了答案中使用的逗号。

我想弄清楚的第二个主要问题是如何更改此模式以允许空值仍然反映在输出数组中。

测试输入

,,,'This is a test', 'I'm a test as well', 'I,too, am a test'

所需输出

null
null
null
This is a test
I'm a test as well
I,too, am a test

目前我正在

This is a test
I'm a test as well
I
too
am a test

1 个答案:

答案 0 :(得分:0)

这将完全匹配您想要的匹配

(?:,|^)    # start with start of line or comma
(\s*       # start capture group
 (?:
  [^',].*? # match anything not starting with a comma or a quote
  |        # OR 
  '.*?'\s* # match anything starting and ending with quotes
 )?        # OR nothing at all 
)
(?=,|$)    # end with , or end of string, but don't match

see it in action