繁体   English   中英

用CSV文件中的“解析Java中的CSV文件

[英]parsing CSV file in java with " in the CSV file

我的CSV文件包含以下文本:

a, b, 0, "0, 1, 2", ""ab cd", 5", 10

我的正则表达式:

aColumnValue = dataRow.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");

其中aColumnValue是一个String数组。

此正则表达式失败,因为正则表达式在关闭前并在下一个标记中搜索之前在“”上显示。

请帮助找到正确的正则表达式。

令牌的正确计数应为:6,而实际令牌应为

a
b
0
0, 1, 2,
"ab cd", 5
10

提前致谢。

不要使用正则表达式解析CSV。 使用知道可以做到这一点的库。 例如OpenCSVApache Commons CSV

可能还有更多问题。 您应该使用一些CSV解析器,例如opencsv http://opencsv.sourceforge.net/

String input = "a, b, 0, \"0, 1, 2\", \"\"ab cd\", 5\", 10";
String[] parts = input.split(",(?=([^\"]*\"[^\"]*\")*(?![^\"]*\"))");

parts变量包含:

a
 b
 0
 "0, 1, 2"
 ""ab cd", 5"
 10

您可能需要删除"和”空格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM