代码之家  ›  专栏  ›  技术社区  ›  Pratik Jaiswal

Python替换引号中两个单词之间的符号

  •  0
  • Pratik Jaiswal  · 技术社区  · 6 年前

    试图替换 逗号 杜兰戈和PC & 然后删除引号。与第三行相同 奥比斯和PC 我希望使用Python保留其余行:

    2,SIN-Rendering,Core Tech - Rendering,PC,147,Reopened
    2,Kenny Chong,Core Tech - Rendering,"Durango, PC",55,Reopened
    3,SIN-Audio,AAA - Audio,"Orbis, PC",13,Open
    ...
    ... 
    ...
    

    像这样,我的样本中可以有100行。因此,预期产出为:

    2,SIN-Rendering,Core Tech - Rendering,PC,147,Reopened
    2,Kenny Chong,Core Tech - Rendering, Durango & PC,55,Reopened
    3,SIN-Audio,AAA - Audio, Orbis & PC,13,Open
    ...
    ...
    ...
    

    如何做到这一点,有什么建议吗?学习Python。

    3 回复  |  直到 6 年前
        1
  •  0
  •   zmbq    6 年前

    使用 regular expression

    应该是这样的:

    \"(\w*),\ (\w*)\"
    

    这会抓住你的 杜兰戈 个人计算机 ,并将它们映射到两个组中,以后在替换它们时使用它们。

        2
  •  0
  •   Mika72    6 年前

    像这样?添加适当的 if()

    此代码通过所有行 ..., "..., ...", ... => ..., ... & ..., ...

    import re
    
    expr = r'2,Kenny Chong,Core Tech - Rendering,"Durango, PC",55,Reopened'
    
    expr2 =  re.findall('"(.*?)"', expr)
    if len(expr2)!=0:
        expr3 = re.split('"',expr)
        expr4 = expr3[0]+expr3[1].replace(","," &")+expr3[2]
        print(expr4)
    
        3
  •  0
  •   javaShilp    6 年前

    st = "2,Kenny Chong,Core Tech - Rendering,\"Durango, PC\",55,Reopened"
    res = re.sub(r'\"(.*),\ (.*)\"',lambda x : (" & ").join(re.findall(r'\"(.*),\ (.*)\"', st)[0]),st)