如果字符串包含foo
,则替换foo
为bar
。否则,追加bar
到字符串。如何用一个re.sub
(或任何其他函数)调用来编写它?没有条件或其他逻辑。
import re
regex = "????"
repl = "????"
assert re.sub(regex, repl, "a foo b") == "a bar b"
assert re.sub(regex, repl, "a foo b foo c") == "a bar b bar c"
assert re.sub(regex, repl, "afoob") == "abarb"
assert re.sub(regex, repl, "spam ... ham") == "spam ... hambar"
assert re.sub(regex, repl, "spam") == "spambar"
assert re.sub(regex, repl, "") == "bar"
对于那些好奇的人,在我的应用程序中,我需要替换代码是表驱动的——正则表达式和替换是从数据库中获取的。