【发布时间】: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 中运行良好是什么意思?