不同程序有不同的CSV格式,微软CSV格式文件中得到格式是用逗号将不同的字段进行分割,或者当字段包含逗号时候用双引号分割,举例如下:
一、微软CSV格式匹配
【文本】
your dollors,10000, 27 years old ,,”10,000”,”it is “10 Grand”,baby”,10k
这个例子中包含了七个字段,分别是
your dollors
10000
27 years old
空字段
10,000
it is “10 Grand”,baby
10k
【难点】在于“10,000”和“it is “10 Grand”,baby”,双引号中嵌套双引号和逗号
1、[^,"]+
可以获取之前用逗号和双引号分割的字段,但是这显然不足以将这七个字段完全正确的分割开;
2、双引号中包含逗号或双引号之间的文本,"(?:[^"]|"")*"
3、双引号嵌套:如果是双层嵌套,可以用表达式"[^,"]*"[^"]*"[^"]*"
因此,用以下表达式可以正确将文本分开
【表达式】
[^,"]+|,,|(?:"[^,"]*"[^"]*"