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

问题描述 投票:0回答:1

我正在寻找一个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!但是我,我想打印出格式不正确的消息。

提前致谢。

csv groovy split
1个回答
0
投票

尝试改变它:

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

让我知道。

© www.soinside.com 2019 - 2024. All rights reserved.