当前位置:网站首页>系统运维系列 之CSV文件读取时内容中包含逗号的处理方法
系统运维系列 之CSV文件读取时内容中包含逗号的处理方法
2022-08-03 20:25:00 【琅晓琳】
问题描述:
CSV文件默认逗号分隔,但是如果在内容中包含逗号,则会导致分隔失败或者数组下标匹配越界的问题。
处理方法:
(1)正则表达式
//(?=pattern)
//非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用
//(?:pattern)
//非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式
//分割没有被双引号扩住的逗号
line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)")
(2)使用第三方jar
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>4.4</version>
</dependency>
参考资料:
https://blog.csdn.net/wls_2019/article/details/123225335 csv文件读写中的特殊情况(逗号)
https://www.cnblogs.com/allen2333/p/9835654.html 正则表达式 - (?!), (?, (?=)
https://blog.csdn.net/superbeyone/article/details/83624241 Java读取CSV文件(CSV文件数据内容包含逗号处理)
边栏推荐
- 云服务器如何安全使用本地的AD/LDAP?
- RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸
- 涨薪5K必学高并发核心编程,限流原理与实战,分布式计数器限流
- Leetcode 899. An orderly queue
- 华为设备配置VRRP与BFD联动实现快速切换
- nvm的使用 nodejs版本管理,解决用户名是汉字的问题
- ESP8266-Arduino编程实例-MCP4725数模转换器驱动
- EasyCVR平台海康摄像头语音对讲功能配置的3个注意事项
- 软件测试基本流程有哪些?权威的第三方软件检测机构推荐
- leetcode 136. 只出现一次的数字(异或!!)
猜你喜欢
随机推荐
Node version switching tool NVM and npm source manager nrm
算法--交错字符串(Kotlin)
直播平台怎么搭建,针对输入框的各种组件
Advantages and Disadvantages of Blind and Buried Via PCB Stacked Via Design
华为设备配置VRRP负载分担
Likou 59 - Spiral Matrix II - Boundary Judgment
glusterfs build and use
tRNA-m5C转运RNA(tRNA)修饰5-甲基胞嘧啶(m5C)|tRNA修饰m1Am2A (2-methyladenosine)
149. The largest number on a straight line, and check the set
汉源高科8光口12电口交换机千兆8光8电12电16电网管型工业以太网交换机
子结点的数量(2)
How can a cloud server safely use local AD/LDAP?
Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
leetcode 899. 有序队列
async 和 await 原来这么简单
error: C1083: 无法打开包括文件: “QString”: No such error: ‘QDir‘ file not found
leetcode refers to Offer 58 - II. Left Rotate String
力扣203-移除链表元素——链表
Anaconda 虚拟环境迁移
力扣707-设计链表——链表