gpt4 book ai didi

java - 基于逗号的拆分的正则表达式忽略引号内的逗号

转载 作者:行者123 更新时间:2023-12-02 01:10:35 35 4
gpt4 key购买 nike

在我的一个项目中,我不得不处理逗号分隔文件 (CSV)。我不得不根据逗号 , 忽略引号内的逗号(即 "")拆分数据,因此我使用了另一个堆栈溢出问题 (Java: splitting a comma-separated string but ignoring commas in quotes) 中提到的表达式。一切正常,直到最近我注意到它不适用于下面提到的一种特定情况。

我有一个数据字符串需要用逗号拆分为:

20Y-62-27412,20Y6227412NK,BRACKET,101H,00D505060,H664374,06/25/2013,1,,

根据我的理解表达

String[] rowData = str.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");

拆分后的数据应该返回一个大小为 10 的数组,数组的最后两个索引包含一个空字符串,相反,我得到一个大小为 8 的数组,最后两个逗号未被视为拆分器。我在我的应用程序中的几个地方使用了这个表达式,所以我不想从这里回溯。任何帮助,将不胜感激。谢谢

最佳答案

您需要使用 split(java.lang.String, int)方法

您的代码将如下所示:

String str = "20Y-62-27412,20Y6227412NK,BRACKET,101H,00D505060,H664374,06/25/2013,1,,";
String[] rowData = str.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)", -1);

关于java - 基于逗号的拆分的正则表达式忽略引号内的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17939307/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com