Функция 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
До Нового года остались считанные дни, а подарок для дизайнера или архитектора ещё не выбран? У MosBuild есть идеи!
В подборке — предметы, которые точно оценят те, кто разбирается в форме, цвете и пространстве
#mosbuild#вдохновение
Подробнее о проектах читайте в источниках:винодельня от ASR, подборка образовательных учреждений от журнала Interior+Design, аэропорт от KPLN
#вдохновение#mosbuild
10 городов, 3 страны и сильное партнёрство: спасибо за D+A Tour 25/26 ❤️
Региональная программа D+A Tour от MosBuild в этом сезоне стала масштабным профессиональным маршрутом по России и странам СНГ. Мы объединили 10 городов — Санкт-Петербург, Казань, Нижний Новгород, Минск, Новосибирск, Красноярск, Екатеринбург, Алматы, Краснодар и Ростов-на-Дону. Команда выставки преодолела тысячи километров, чтобы создать пространство для профессионального диалога, вдохновения и развития архитектурно-дизайнерского сообщества.
Каждая встреча D+A Tour — это новые знакомства, живые дискуссии, обмен опытом и практикой, актуальные тренды и реальные кейсы. Этот масштабный путь был бы невозможен без поддержки наших партнёров!
Благодарим партнёров программы:AM Group, Kerama Marazzi, Manders, Espocada, Dea Design, MercuryStone, Boca Room, Императорский фарфоровый завод, I-Design Awards, VEKA Rus, Алютех, Tanu, Студию 40. И наших информационных партнёров Hi home и Архдиалог.
Особую благодарность выражаем генеральному партнёру D+A Tour — Knauf — за стратегическую поддержку и вклад в развитие отрасли в регионах.
Спасибо за доверие, вовлечённость и готовность вместе развивать профессиональное сообщество!
#datour#mosbuild
Фотографии с мероприятий D+A Tour в Алматы уже доступны на MosBuild Connect
Урбан-тур по новым жилым объектам города, звездная деловая программа — смотрите, как прошел D+A Tour в Казахстане!
➖Урбан-тур — https://clck.ru/3Qc7Jd
➖Деловая программа — https://clck.ru/3Qc7Md и https://clck.ru/3Qc7Nv
Фотографии из других городов региональной программы вы также можете найти в разделе «Контент» онлайн-сообщества MosBuild Connect
#datour#mosbuild
D+A Tour в Алматы: вдохновляющий диалог об архитектуре и дизайне состоялся
20–21 ноября прошёл яркий D+A Tour. Участники погрузились в насыщенную программу: от эксклюзивного Урбан-тура от партнеров мероприятия «Студии 40» до выступлений ведущих экспертов отрасли
Первый день тура включил посещение ЖК Dream City Family, ЖК Verdi и ЖК Dostyq 300, где гости смогли оценить современные архитектурные решения и градостроительные подходы
Деловая часть программы прошла в пространствеImagine. Слушателей ждали лекции о главных тенденциях в дизайне, развитии студий, готовых интерьерных решениях и роли технологий в архитектуре.Средиспециальных гостей D+A Tour — амбассадоры MosBuild Михаил Шапошников и Диана Балашова, а также представители экосистемы TANU, партнеров региональной программы в Алматы
Событие завершилось вдохновляющим интервью и неформальным общением участников — D+A Tour вновь подтвердил свою роль как международной площадки для обмена опытом, идеями и новыми профессиональными связями
До встречи в следующем городе!
#datour#mosbuild
Перед тем как D+A Tour пройдет на юге России, давайте вспомним как региональная программа прошла в Новосибирске!
Все фото- и видеоматериалы с мероприятия уже доступны
в разделе «Контент» онлайн-сообщества MosBuild Connect
#mosbuild#datour