我正在寻找一个常规的正则表达式,能够解析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!但是我,我想打印出格式不正确的消息。
提前致谢。
答案 0 :(得分:0)
尝试改变它:
it.split( “(=(?:?[^ \ ”]的 \“[^ \ ”] \“)的 [^ \”] \ $ {1})“)
让我知道。