Python Найти все буквенные символы в строке и окружить текстом

Итак, скажем, у меня есть строка, которая говорит «m * x + b», я хочу найти любые буквенные символы, кроме x, и окружить их текстом.

В этом примере вывод должен быть "var['m'] * x + var['b']"


person josephsmendoza    schedule 04.11.2014    source источник


Ответы (1)


Крошечное регулярное выражение решает вашу проблему:

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`
person Falko    schedule 04.11.2014