Функция sub в regex может принимать функцию в качестве аргумента repl.
📄 Из документации:
If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string.
То есть для каждого совпадения будет вызвана функция для вычисления замены вместо замены на одну и ту же строку для всех совпадений.
Иными словами, для замены разных совпадений на разные строки не потребуется запускать re.sub() много раз для каждой строки замены. Достаточно определить функцию, которая вернёт строку для каждого из совпадений.
Описание слишком запутанное🤔, давайте лучше рассмотрим на простом примере:
Создаем карту замены. То есть какие строки на какие требуется менять.
remap = {
'раз': '1',
'два': '2',
'три': '3',
'четыре': '4',
'пять': '5',
}
Пишем функцию поиска строки для замены. Единственным аргументом будет объект re.Match.
Используя данные этого объекта мы вычисляем замену on-the-fly!
def get_str(match: re.Match):
word = match.group(1)
return remap.get(word.lower()) or word
Пример текста.
text = '''Раз Два Три Четыре Пять
Вместе будем мы считать
Пять Четыре Три Два Раз
Мы считать научим вас
'''
Теперь запускаем re.sub и вместо строки замены (repl) подаём имя функции.
(Данный паттерн ищет отдельные слова в тексте)
>>> print(re.sub(r'(\w+)', get_str, text))
1 2 3 4 5
Вместе будем мы считать
5 4 3 2 1
Мы считать научим вас
Думаю, достаточно наглядно 🤓
#libs#regex
«Честное-пречестное слово!», 80х60, холст, масло,
Doping Pong, 2026
Работа из серии «Следи за руками» –киноафиша несуществующего советского фильма 70-х годов, повествующего о неожиданном пересечении двух миров: вселенной Дяди Степы милиционера и субкультурного движения хиппи, представленной девушкой-автостопщицей. Никогда не верь хиппи! Ни слова правды! Пропасть между поколениями – в образах и цвете.
Ярмарка современного искусства [catalog]
17-19 апреля 2026
Москва,
ЖК «Золотой», Софийская наб., 10
Стенд a.9
Галерея 11.12
#dopingpong#hippie#hitchhiking#policeman#ussretro
Сегодня Гагарину исполнилось 90 лет.
Спасибо, Юрий Алексеевич, за вдохновение!
Публикуем фото с экспозиции арт-группы Doping Pong в Порту Севкабель (2018), где был представлен портрет первого покорителя космического пространства.
#dopingpong#gagarin#ussretro#sovietspace#russiancosmonaut#firsthumaninspace
Арт-группа Doping Pong принимает участие в пятом выпуске ярмарки IcatalogI.
На стенде Галерея 11.12 будут представлены две новые живописные работы Допингов из серии «Следи за руками»: «Честное-пречестное слово!» и «Объясняю на пальцах» 2026 года.
Обе картины представляют собой наполненную иронией ретро-стилизацию: в первом случае – под киноафишу выдуманного советского фильма 70-х годов, а во втором – под обложку книги по эзотерике, которые были популярны в 90-х годах.
Успейте увидеть первыми.
16 (превью) 17-19 апреля 2026
Москва,
ЖК «Золотой», Софийская наб., 10
Стенд a.9
#dopingpong#hippie#hitchhiking#policeman#ussretro#nudism#naturism#paperback#philosophy
В День советского кино мы публикуем самую кинематографическую картину Doping Pong – «Вечерний Грозный», 90х65,холст,масло, 2018
Это впечатление от первого просмотра по телевизору в городе Грозном в 1979 году фильма «Золотая мина» Евгения Татарского.
Начальный кадр застыл на экране цветного телевизора Электрон 714/Д… как застыл и герой картины.
Одно из самых ярких детских воспоминаний, потому что этот детектив тогда сильно напугал ребенка, который вдруг, впервые в своей детской жизни, увидел и осознал, что в чудесной и сказочной советской действительности существует какая-то параллельная реальность, где живут кладоискатели, преступники, следователи и бушуют нешуточные подпольные страсти. Можно назвать этот миг первым соприкосновением со взрослой жизнью.
#dopingpong#соцреализм#романтизм#советскоекино#ссср#грозный#soviet#russianart#ussretro#oiloncanvas #2018
Процесс работы арт-группы Doping-Pong над картиной
«Волшебница Изумрудного города», х/м, 70х100, Doping Pong, 2024.
VLADEY СЛИВКИ
Живой аукцион
Участие онлайн и по телефону
Трансляция на сайте
Вторник, 27 февраля в 19:00
More info: Лот 19 https://vladey.net/ru/lot/11614
#dopingpong#art#russia#georgia#moscow#tbilisi#thewizardoftheemeraldcity#oiloncanvas#ussretro#vladey#vladeyart#workinprogress#wip