Итак, скажем, у меня есть строка, которая говорит «m * x + b», я хочу найти любые буквенные символы, кроме x, и окружить их текстом.
В этом примере вывод должен быть "var['m'] * x + var['b']"
Итак, скажем, у меня есть строка, которая говорит «m * x + b», я хочу найти любые буквенные символы, кроме x, и окружить их текстом.
В этом примере вывод должен быть "var['m'] * x + var['b']"
Крошечное регулярное выражение решает вашу проблему:
import re
s = "m * x + b"
print re.sub("([a-wyzA-Z])", r"var['\1']", s)
Выход:
var['m'] * x + var['b']
Объяснение:
[a-wyzA-Z]
соответствует всем символам в квадратных скобках: a-w, y, z и A-Z (по сути, всем буквам, кроме x)(...)
делает найденное совпадение доступным позже через \1
r"var['\1']" is the replacement referring to the match
\1`