【发布时间】:2025-11-25 04:15:01
【问题描述】:
我有一个格式如下的 csv 文件:
22/09/2011 15:15:11 "AT45 - Km 2 +300 Foo " "PL - 0460" 70 096 123456_110922_151511_000001M.jpg 123456 "DBx 4U02" 428008 100 95 "AB123CD"
22/09/2011 15:15:16 "AT45 - Km 2 +300 Foo " "PL - 0460" 70 087 123456_110922_151516_000002M.jpg 123456 "DBx 4U02" 428008 100 95 "EF456GH"
22/09/2011 15:16:30 "AT45 - Km 2 +300 Foo " "PL - 0460" 70 079 123456_110922_151630_000005M.jpg 123456 "DBx 4U02" 428008 200 96 "LM789NP"
我需要一个正则表达式来正确拆分每个值,例如第一行是:
22/09/2011
15:15:11
"AT45 - Km 2 +300 Foo "
"PL - 0460"
70 096 123456_110922_151511_000001M.jpg
123456
"DBx 4U02"
428008
100
95
"AB123CD"
我找到了这个正则表达式:([^,"]+|"([^"]|)*"),但它并不能很好地完成这项工作。
有人可以给我一个好的提示吗?
【问题讨论】:
-
这不应该由正则表达式完成,而是由 CSV 解析器完成。
-
请参阅*.com/questions/18144431/regex-to-split-a-csv,记住您的数据是空格分隔而不是逗号分隔符。
-
如果您逐个字符地迭代并在引号内将空格添加到当前元素并在引号之外迭代您正在处理的元素,那么这个问题很容易解决。重复标记应重定向到 java 问题而不是 python。
-
你试过
("[^"]*"|[^\s]+)吗?