2017-10-19 97 views
0

我想读csv file.I通过换行符分割文件现在我想用逗号“,”分隔每一行。低于正则表达式正常工作,但问题是它省略了空字段。用逗号分割字符串,但要保留空字段

我想这个输出

[Type,Name,Description,"",Comments] 

但是,得到4索引,而5

[Type,Name,Description,Comments] 

str = "Type,Name,Description,,Comments" 
var arr = str.match(/("[^"]*")|[^,]+/g); 

/("[^"]*")|[^,]+/g) 

上述正则表达式中使用,如果逗号双引号中出现 类型来避免这个问题,名称,“说明, s“,,评论

我是新来的正则表达式,并不知道如何才能实现它。在此先感谢

+4

不使用正则表达式,使用'分裂(“”)' –

+1

我认为这是错误的重复数据删除技术的目标,因为它不仅是分裂,但保持引用的字符串用逗号而分离。 –

回答

1

你可以空部分(?=,(,|$))添加的模式。

var string = "Type,\"Name, foo\",Description,,Comments,", 
 
    array = string.match(/(("[^"]*")|[^,]+)|(?=,(,|$))/g); 
 

 
console.log(array);

+0

谢谢,正确和最快的答案:) –

1

只需使用String#split函数并将,传递给它。

var str = "Type,Name,Description,,Comments" 
 
var arr = str.split(','); 
 

 
console.log(arr);

+1

尽管这只是我的POV,但回答是愚蠢的。 – Rajesh

+0

当他发布他的答案时,并没有被标记为愚蠢。 – delinear

+0

它在引用的部分使用逗号。 –