如何验证CSV文件

时间:2017-02-14 12:11:21

标签: java regex csv

我想验证CSV文件。

条件是有9列,用逗号分隔,如下所示:

something1,some[thi]ng2,some/thing3,so"meth"ing4,somet'hi'ng:5,something6,something7,something 8,something9

什么是检查每行中是否有9列的最佳方法,如下所示:

,,,,,,,,

但结构应该没问题。

1 个答案:

答案 0 :(得分:1)

这是一个匹配输入字符串和空字符串的正则表达式:

[^,]*(?:,[^,]*){8}

仅当您逐行测试输入时才有效。请参阅下面的整个文件解决方案。

See the demo

解释

  • [^,]*匹配除逗号0之外的任何字符或多次。
  • (?:,[^,]*){8}匹配逗号后跟任何字符,但逗号为0或多次,且为8次

如果您测试整个文件(多行),您可能希望通过在使用时指定Pattern.MULTILINE来使用此表达式:

^[^,\r\n]*(?:,[^,\r\n]*){8}$