是否有任何函数可以替换 python 字符串中的变量?

Is there any function to replace a variable in python string?

我正在使用 python 3,我只想使用高效且有效的单行代码来解决以下问题。

假设,我有一个词,它有多种组合。我想用高效的单行代码替换所有组合。 例如,

s2 = 'Hello Donald. DONALD is playing with his son. His son loves to play with donald' 
s2.replace('Donald', 'John')

这仅替换 Donald 而不是 DONALDdonald.

如何替换[的所有组合(DonaldDONALDdonald) =28=]唐纳德 约翰

更明确地说:

s3 = 'NO No nO no' 

我可以用

s3.replace('NO', 'yes').replace('No', 'yes').replace('nO', 'yes').replace('no', 'yes')

但是,组合越多,替换功能就越多。 如何有效且高效地使用替换功能将所有组合 NO 替换为 yes.

data_str = "No NO nO no".upper().replace('NO', 'YES')

打印(data_str)

import re
re.sub("(?i)no","yes", "no No nO NO") # yes yes yes yes

您可以在不区分大小写的模式下使用regular expressions and in particular re.sub

import re

re.sub('donald', 'john', 'DoNalD duck', flags=re.I)
# john duck

如果您还想消除可能的重音符号 ÁÀÃÂÇÉÊÍÕÓÔÚáàãâçéêíõóôú 您可以首先 'normalize' 这个无正则表达式代码高尔夫示例中的字符 When I grow up I want to be ASCII.

然后继续制作所有字符 'upper' 或 'lower' 并替换所需的字符串元素。