我有一个文件,其中以逗号分隔,但数字也使用逗号分隔。例如:
01-01-2010,a,""0.0"",c,d,""1,234,567.00"",1,2,3,4
数字以某种方式用双引号括起来,或者
01-01-2010,a,""3,123.00"",c,d,""1,234,567.00"",1,2,3,4
是否有一个简单的正则表达式,使用Python的re.sub
来仅删除数字内的逗号?换句话说,我希望转换为
01-01-2010,a,0.0,c,d,1234567.00,1,2,3,4
01-01-2010,a,3123.00,c,d,1234567.00,1,2,3,4
然后最后使用.split()
拆分为列
所以我尝试的一些想法是 re.sub('"+\d+,\d+"+', ?, s)
如果 s
是有问题的字符串但这似乎是一个不完整的解决方案。
最佳答案
您可以使用re.findall
:
import re
s = '01-01-2010,a,""0.0"",c,d,""1,234,567.00"",1,2,3,4'
new_data = ','.join([i.replace(',', '') for i in re.findall('(?<="")[,\d\.]+(?="")|[\w\d\-]+', s)])
输出:
'01-01-2010,a,0.0,c,d,1234567.00,1,2,3,4'
关于python - 仅删除特定位置的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52398043/