【问题标题】:Regarding CSV File Format SPLIT关于 CSV 文件格式 SPLIT
【发布时间】:2010-02-17 22:50:12
【问题描述】:

我打算修改文件格式,以便每个字段都应该用双引号括起来,强制"A","Field1","Field2","Field3","Fi"el,d","Fi""eld",我希望将分隔符合并为“,(双引号后跟逗号)如何更改下面的拆分命令包括两个分隔符“,(双引号和逗号)一起line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)",15);

【问题讨论】:

  • 这是什么语言?更新:看看发帖者提出的其他问题,我猜是 Java。
  • 来自同一用户的欺骗:stackoverflow.com/questions/2277476/…stackoverflow.com/questions/2241915/… 请始终坚持一个用户帐户和每个问题/问题一个主题。
  • 非常感谢您的信息。我给了我的回复,但没有得到回复。所以我创建了这个线程。我正在一个用户帐户下创建问题,但不确定它如何可以是多个帐户。
  • 还有一个更早的:stackoverflow.com/questions/2241758/…
  • @arav:你得到了使用真正的 CSV 解析器的答案。

标签: java parsing csv


【解决方案1】:

如何更改以下拆分命令以包含两个分隔符“,(双引号和逗号)

这样就可以了:

line.split("\",");

您需要修剪没有被拆分删除的额外引号。你也可以考虑拆分"\",\""

但是,我建议您尝试为您的平台找到一个现有的 CSV 阅读器,而不是重新发明轮子。它会更好更快,工作量也会少很多。

【讨论】:

  • 非常感谢。我会试试这个。当数据中有双引号时,逗号会产生问题。所以我想结合使用两个分隔符。您回答“您需要修剪未通过拆分删除的额外引号”。我没有得到这个。您是指该行中的最后一个字段吗?
  • 我刚刚写了一个建议一些 CSV 库的答案,然后注意到 Mark 已经建议使用现有的 CSV 库。 SuperCSV 乍一看还不错,但至少还有其他 4 个也应该可以完成这项工作。
【解决方案2】:

在我们的应用程序中,多年来我们还支持逗号分隔文件。一切都很顺利,直到客户开始在字符串中添加双引号。 我们通过还允许将值嵌入单引号中解决了这个问题(并且不允许双引号之间的单引号,或单引号之间的双引号),但是客户想要在字符串中同时添加单引号和双引号,或者不能t 不再以简单的方式生成此文件,因为包含的字符取决于值。

然后我们开始支持反斜杠,但情况只会变得更糟。

我们最终通过使用 TAB 作为分隔符(而不是逗号)解决了这个问题。制表符永远不会出现在字符串值中。不再需要引号。问题解决了。

【讨论】:

  • 非常感谢。已经开发了一些系统。所以我现在不能更改分隔符。
猜你喜欢
  • 2011-01-15
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-07
  • 2013-10-09
  • 2019-01-15
相关资源
最近更新 更多