2017-10-19 76 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

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

相關問題