python中使用正则表达式进行多次替换

python中使用正则表达式进行多次替换

我可以在 python 中使用正则表达式来进行多种类型的替换吗?就像这个字符串“你好,这是我”一样,我想用“hi”替换“hello”,用“its”替换“this”。我可以用一行完成吗?或者我可以在正则表达式中使用反向引用吗?

答案1

不,不是真的,因为您需要调用re.sub()并将字符串作为参数提供给它。你会得到丑陋的嵌套调用。相反,str.replace()它作为字符串本身的方法并返回新字符串,因此您可以链接调用:

s='hello, this is me'
s=s.replace("hello", "hi").replace("this", "it's")

但是如果你有一个替换列表,你当然可以使用以下命令循环它们re.sub()

import re
s='hello, this is me'
replacements=[("hello", "hi"), ("this", "it's")]
for pat,repl in replacements:
    s = re.sub(pat, repl, s)

不,正则表达式本身并不能真正用于多个替换。

相关内容