代码之家  ›  专栏  ›  技术社区  ›  m0nhawk Pasqui

如何用括号间的多个引号替换引号?

  •  0
  • m0nhawk Pasqui  · 技术社区  · 7 年前

    我得到了一个格式不正确的CSV,它的括号内有引号,如下所示:

    1, 2, 3, "4, 5, 6, (7, 8, 9, "10, 11, 12", 13), 14"
    

    所需输出为:

    1, 2, 3, "4, 5, 6, (7, 8, 9, ""10, 11, 12"", 13), 14"
    

    我只能想到:

    s = '''1, 2, 3, "4, 5, 6, (7, 8, 9, "10, 11, 12", 13), 14"'''
    s.replace(re.search(r'\(.*\)', s).group(0), re.search(r'\(.*\)', s).group(0).replace('"', '""'))
    

    1 回复  |  直到 7 年前
        1
  •  1
  •   DirtyBit    7 年前
    import re
    
    data = '1, 2, 3, "4, 5, 6, (7, 8, 9, "10, 11, 12", 13), 14"'
    
    def replace(g):
        return g.group(0).replace('"', '""')
    
    print(re.sub(r'\(.*?\)', replace, data))
    

    输出:

    1, 2, 3, "4, 5, 6, (7, 8, 9, ""10, 11, 12"", 13), 14"