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:忽略双引号内的逗号的主要内容,如果未能解决你的问题,请参考以下文章
使用逗号拆分字符串,但忽略双引号内的逗号 - javascript
numpy genfromtxt/pandas read_csv;忽略引号内的逗号