我有一个文件,上面写着:

1,2,"toto , titi",3"titi ,, tata",4

我想用冒号替换引号(,)中的每个逗号"
所以我的出路应该是:
1,2,"toto : titi",3"titi :: tata",4

我正在考虑通过:进行拆分,但我认为有更好的方法。

最佳答案

为此,您可以使用regex:

import re

string = '1,2,"toto , titi",3"titi ,, tata",4'

print(re.sub('".*?"',  lambda x: x.group().replace(',', ':'), string)) #Output 1,2,"toto : titi",3"titi :: tata",4

sub模块中的re方法将替换为regex的帮助。
对于regex,应该使用非贪婪模式.*?以避免,3替换为:3
您可以测试regex online
然后我用lambda函数替换匹配组中的逗号。

08-18 15:30