如何使用正则表达式查找单引号之间的双引号?

时间:2019-09-30 07:03:37

标签: python regex

我有一个字符串,例如“ 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"

的输出

1 个答案:

答案 0 :(得分:1)

字符串'\"''"'是相同的:它们都只是一个双引号,因为序列\"编码一个双引号字符(通常用于{{ 1}}引用的字符串)。

如果您真的想在引号前加反斜杠,则必须将其转义:

"

为了不替换第一个和最后一个字符,可以改用正则表达式:

fo.write(line.replace('"', '\\"'))

正则表达式由负向后看(fo.write(re.sub('(?<!^)"(?!$)', '\\"', line)) ;断言在引号之前没有行开始),引号字符本身和负向先行((?<!^);断言没有行结束< em>在引号后。

Demo