2013-08-02 21 views
0

我試圖用正則表達式來分隔csv文件的值,問題是圍繞句子的引號和我嘗試過的正則表達式似乎沒有做它正確。Java正則表達式for,之後沒有空格

"All's Well, Ends Well 2012",Comedy 

這是包含在CSV字符串之一,我已經試過很多不同的正則表達式語句分離,但它只保留返回整個字符串沒有它分隔條件。

任何意見或解決有關我可以用於此正則表達式嗎?

+0

大概'執行(?:^ |)(\ 「(?:[^ \」] + | \ 「\」)* \ 「| [^,] *)'或更好的CSV解析器! – NINCOMPOOP

+1

您應該使用CSV解析器庫 – Thilo

+0

http://stackoverflow.com/questions/101100/csv-api-for-java – Thilo

回答

1

使用正則表達式與split()通過逗號分割,只有當偶數報價出現在休息的最佳選擇輸入:

String[] parts = line.split(",(?=(([^\"]*\"){2})*[^\"]*$)"); 

查看該代碼在一個live demo on ideone

+0

謝謝你完美的作品^^我在處理中使用它,並不確定我是否可以包含外部庫。非常感謝 – Crossman

相關問題