我正在尝试找到一种方法来替换csv文件中使用python在两个双引号之间发生的所有逗号.
鉴于此类输入:
abc,def,"ghi,jkl,mno",pqr,stu
我想得到:
abc,def,"ghi|jkl|mno",pqr,stu
我尝试使用类似于以下内容的正面外观:
(?<=\")(this here should match every comma)(?=\")但我无法让它发挥作用.有任何想法吗?
在替换部件中使用带有匿名或lambda函数的re.sub.
>>> import re
>>> s = 'abc,def,"ghi,jkl,mno",pqr,stu'
>>> re.sub(r'"[^"]+"', lambda x: x.group().replace(',', '|'), s)
'abc,def,"ghi|jkl|mno",pqr,stu'
Run Code Online (Sandbox Code Playgroud)
注意:这不会处理转义引号并假设所有双引号都已正确平衡.