读取 txt 文本,列中的分隔符要如何处理?

2019-04-28 17:00:51 +08:00
 cirton

读取文本:

9.78043902348e+12,Suzanne Collins,2008.0,The Hunger Games,"The Hunger Games (The Hunger Games, #1)",eng,4.34,4780653

分隔符是逗号,但是列中如 "The Hunger Games (The Hunger Games, #1)" 包含了逗号,这要如何处理? 使用正则可以吗?

2741 次点击
所在节点    Java
6 条回复
kyuuseiryuu
2019-04-28 17:11:53 +08:00
写 parser,引号方括号圆括号之类的结对出现的字符优先匹配,没有匹配上的话之后逗号都视为普通字符不匹配。
my3157
2019-04-28 17:15:11 +08:00
如果不特别 care 性能, 建议正则
lululau
2019-04-28 17:30:42 +08:00
这不是 CSV 吗,人家已经把包含分隔符的字段引起来了啊
annielong
2019-04-28 17:34:37 +08:00
就如 csv 大文件导入时候文本包含引号的问题一样
gaolycn
2019-04-28 23:40:57 +08:00
请使用 csv parser,不用当作纯文本自己处理
autogen
2019-04-29 00:49:39 +08:00
我还见过这样的代码。。。。

if cols.length == 9:
fullname = cols[4] +',' + cols[5]
cols.pop(5)
else:
fullname = cols[4]



-

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/559529

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX