[英]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。 使用知道可以做到这一点的库。 例如OpenCSV或Apache 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.