正则表达式—解析CSV文件

本文探讨了如何使用正则表达式处理微软CSV格式的文件,特别是遇到双引号内包含逗号和多层双引号嵌套的情况。通过具体的例子和正则表达式,解释了解决这类问题的方法。
摘要由CSDN通过智能技术生成

不同程序有不同的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、双引号嵌套:如果是双层嵌套,可以用表达式"[^,"]*"[^"]*"[^"]*"

因此,用以下表达式可以正确将文本分开
【表达式】

[^,"]+|,,|(?:"[^,"]*"[^"]*"
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值