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

2024-04-28 06:59:42 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试用&;替换第二行中两个单词Durango和PC之间的逗号,然后删除引号“以及”。对于第三行的Orbis和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。你知道吗


Tags: coresinopenaudiotech引号amppc
3条回答

为此使用regular expression。编写一个正则表达式来捕获字符串,然后用它来替换它。你知道吗

应该是这样的:

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

这将捕获您的DurangoPC,并将它们映射到两个组中,稍后在替换它们时使用。你知道吗

如下所示:

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

像这样的?如果您只想在第二行中将逗号转换为与号,请添加适当的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)

相关问题 更多 >