【问题标题】:GROOVY - Parsing CSV: Ignore commas inside double quotesGROOVY - 解析 CSV:忽略双引号内的逗号
【发布时间】:2017-11-22 18:52:05
【问题描述】:

我正在寻找一个能够解析 CSV 文件同时忽略逗号内部双引号的 groovy 正则表达式。 以下正则表达式在 Java 中运行良好,但在 Groovy 中却不行:

it.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)")

请您帮我解决这个问题。

我想验证一个CSV文件格式,例如下面的例子,格式是否正确:

Header1, Header2, Header3
1, 2, 3
4, "5, 6", 7

但在这种情况下,格式无效:

Header1, Header2, Header3
1, 2

我检查了Groovy Split CSV,但它并没有解决我的问题。因为那篇文章中给出的解决方案,解析后的csv如下:

Header1, Header2, Header3
1, "2, 3", 4, 5

将匹配:

Header1: 1
Header2: "2, 3"
Header3: 4

它忽略了 5!但是我,我想打印一条格式不正确的消息。

提前致谢。

【问题讨论】:

  • 你说 >regex 在 Java 中运行良好但在 Groovy 中运行良好是什么意思?

标签: csv groovy split


【解决方案1】:

尝试像这样改变它:

it.split(",(?=(?:[^\"]\"[^\"]\")[^\"]\ ${1})")

告诉我。

【讨论】:

  • 正确解释您的问题,我们应该尽力给您答案或帮助
猜你喜欢
  • 2014-02-26
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 2015-10-23
  • 1970-01-01
  • 2011-05-11
  • 2011-12-25
相关资源
最近更新 更多