【问题标题】:how to find double quotes between single quotes using regex expression? [duplicate]如何使用正则表达式在单引号之间查找双引号? [复制]
【发布时间】:2019-09-30 07:03:37
【问题描述】:

我有一个像“你好吗”这样的字符串,我想在 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"这样的输出

【问题讨论】:

    标签: python regex


    【解决方案1】:

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

    如果你真的想要引号前的反斜杠,你必须转义它:

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

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

    fo.write(re.sub('(?<!^)"(?!$)', '\\"', line))
    

    正则表达式由一个否定的lookbehind((?&lt;!^);断言没有行在引号之前开始)、引号字符本身和一个否定的lookahead((?!$);断言没有行在之后 引用)。

    Demo

    【讨论】:

      猜你喜欢
      • 2019-04-15
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多