Если строка содержит 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"
Для тех, кому интересно, в моем приложении мне нужен код замены для управления таблицами - регулярные выражения и замены берутся из базы данных.