GROOVY - 解析CSV:忽略双引号内的逗号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GROOVY - 解析CSV:忽略双引号内的逗号相关的知识,希望对你有一定的参考价值。

我正在寻找一个groovy正则表达式能够解析CSV文件,而忽略逗号内部双引号。以下正则表达式在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!但是我,我想打印出格式不正确的消息。

提前致谢。

答案

尝试改变它:

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

让我知道。

以上是关于GROOVY - 解析CSV:忽略双引号内的逗号的主要内容,如果未能解决你的问题,请参考以下文章

Netezza CSV 加载忽略值内的逗号

在逗号上拆分字符串但忽略双引号内的逗号?

使用逗号拆分字符串,但忽略双引号内的逗号 - javascript

numpy genfromtxt/pandas read_csv;忽略引号内的逗号

使用 rxImport 函数将 CSV 文件读入 .Xdf 文件时抑制双引号内的逗号

Python解析CSV忽略带双引号的逗号