我有一个字符串,例如“ how(你)如何”,我想在python中使用正则表达式将“ are”周围的引号替换为\”。
input_file = 'D:/Extracts/yourFileName.csv'
file_output= 'D:/Extracts/yourFileName_out.csv'
with open(input_file, 'r',encoding="utf8") as f, open(file_output, 'w',encoding="utf8") as fo:
for line in f:
fo.write(line.replace('"', '\"').replace(""", ""))
我想要类似"how \"are\" you"
答案 0 :(得分:1)
字符串'\"'
和'"'
是相同的:它们都只是一个双引号,因为序列\"
编码一个双引号字符(通常用于{{ 1}}引用的字符串)。
如果您真的想在引号前加反斜杠,则必须将其转义:
"
为了不替换第一个和最后一个字符,可以改用正则表达式:
fo.write(line.replace('"', '\\"'))
正则表达式由负向后看(fo.write(re.sub('(?<!^)"(?!$)', '\\"', line))
;断言在引号之前没有行开始),引号字符本身和负向先行((?<!^)
;断言没有行结束< em>在引号后。