Функция 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
Спортивные трансляции на большом экране👀
24-30 ноября в пространстве Vokzal 1853 можно будет увидеть и поболеть за команды футбола и хоккея.
📍Обводный канал 118
1 этаж, около кинотеатра Каро.
#спб#спорт#Vokzal1853
✨Больше событий в Питере✨
🎬Бесплатные кинопоказы в «Vokzal 1853»
В пространстве VOKZAL 1853 продолжаются бесплатные киносеансы — от классики и семейных фильмов до культовых блокбастеров 🦖
📍Набережная Обводного канала, 118
Малая сцена, 1 этаж
🎟Вход свободный
⸻
📆 Расписание показов
22 апреля (ретро-среда)
🕖 19:00 — «Человек-оркестр»
24 апреля
🕘 21:00 — «Всегда говори „ДА“»
25 апреля — день динозавров 🦕
🕚 11:00 — Земля до начала времён
🕛 12:10 — Земля до начала времён 2: Приключения в Великой Долине
🕜 13:30 — Прогулки с динозаврами (2013)
🕓 16:00 — Парк Юрского периода
🕡 18:30 — Парк Юрского периода 2: Затерянный мир
🕘 21:00 — Парк Юрского периода 3
26 апреля — продолжаем юрскую сагу
🕚 11:00 — Хороший динозавр
🕐 13:00 — Мир Юрского периода
🕞 15:30 — Мир Юрского периода 2
🕕 18:00 — Мир Юрского периода: Господство
🕣 20:30 — Мир Юрского периода: Возрождение
#бесплатноекино#vokzal1853#кинопоказыспб#кудапойтиспб#бесплатныесобытияпетербург
Где провести вечер? Что посмотреть? Все ответы — в Куда сходить в Санкт-Петербурге.
🦖Фестиваль динозавров
25–26 апреля пространство Vokzal 1853 превратится в настоящий доисторический мир с атмосферой юрского периода, приключениями и гигантскими динозаврами.
Гостей фестиваля ждёт насыщенная программа:
— кинопоказы культовых фильмов «Парк Юрского периода» и «Мир Юрского периода» на малой сцене
— творческие мастер-классы на втором этаже у Синих домиков
— тематическая фотозона для эффектных снимков
— активности и развлечения для всей семьи
📍Адрес: набережная Обводного канала, 118
🎟Вход свободный
#фестивальдинозавров#vokzal1853#кудапойтиспб#семейныйотдыхспб#детямспб#бесплатныесобытияпетербурга#петербург
Твоя ежедневная афиша: концерты, выставки, прогулки и не только — в Куда сходить в Санкт-Петербурге.
🎉Фестиваль «Ту-Ту фест» в VOKZAL 1853 — празднуем трёхлетие пространства!
VOKZAL 1853 отмечает три года и устраивает настоящий гастрономический и творческий уикенд для всех гостей!
Вас ждут насыщенные два дня, наполненные вкусами, знаниями и вдохновением.
🍳Что будет на фестивале:
— мастер-классы от шеф-поваров из разных регионов России;
— кулинарная школа для детей — маленькие повара смогут попробовать себя в готовке под руководством профи;
— познавательные лекции и паблик-токи;
— показы фильмов и уютная фестивальная атмосфера.
Отличный вариант провести выходные всей семьёй!
📍 наб. Обводного канала, 118
🗓29–30 ноября
⏰12:00–20:00
💰Вход свободный
#тутуфест#vokzal1853#фестивальспб#кудапойтиспб#питербесплатно#событияпитера#выходныеспб#гуляемпитер
Петербург ближе, чем кажется — будь в курсе интересного с Куда сходить в Санкт-Петербурге.
🎨Весенний Арт Маркет в VOKZAL 1853
Под одной крышей соберутся мастера и дизайнеры, которые представят свои авторские работы. Здесь можно не только посмотреть, вдохновиться и прикоснуться к искусству ручного творчества, но и приобрести стильные элементы декора и гардероба, а также модные аксессуары.
На маркете будут представлены:
— керамика
— украшения
— свечи и парфюм
— предметы декора
— эксклюзивные handmade-изделия
Организаторы подготовили розыгрыши подарков и красивые фотозоны, чтобы весеннее настроение осталось не только в памяти, но и на снимках 🌸
📍VOKZAL 1853
наб. Обводного канала, д. 118С
🗓18–19 апреля
🕐12:00–21:00
🎟Вход свободный
#артмаркет#vokzal1853#маркетспб#кудапойтиспб#бесплатновпетербурге#handmade#веснавпетербурге#бесплатныесобытияпетербурга
Не знаешь, куда сходить? Мы знаем. Подписывайся на Куда сходить в Санкт-Петербурге.
🐲 Китайский Новый год в Vokzal 1853
В фудмоле Vokzal 1853 пройдёт яркий и атмосферный праздник, посвящённый Китайскому Новому году. Гостей ждут мастер-классы, дегустации, игры и чайные церемонии — бесплатно и для всей семьи.
📍 Наб. Обводного канала, 118С
🗓 28 февраля
🎟 Вход свободный
#китайскийновыйгод#vokzal1853
#кудапойтиспб#бесплатновспб
#праздникспб#семейныйдосуг
#афишаспб#культураспб
#spb_today#spbgram
#гуляемпитер
Твоя ежедневная афиша: концерты, выставки, прогулки и не только — в Куда сходить в Санкт-Петербурге.