Функция 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
Config — ежегодная конференция Figma возвращается! #config
75+ спикеров, 50+ выступлений и конечно же долгожданные релизы и анонсы новых фич ждут тебя 21 и 22 июня!
Регистрируйся: https://config.figma.com
Ох, так не терпится рассказать вам сегодня про все обновления! Будет круто, не пропусти трансляцию, регистрируйся: https://config.figma.com/
Начало в 18:00 по Москве сегодня! #config
Config 24 часа: 10-11 мая пройдёт ежегодная конференция Figma! Целые сутки выступлений от 100+ (!!) интересных спикеров и команды Figma! Начало в 18:00 МСК.
Традиционно Дилан Филд откроет конференцию презентацией новых ооочень долгожданных фич! Регистрируйся и не пропусти: https://config.figma.com/. Записи всех выступлений будут доступны через неделю после конференции. #config
Запись выступления основателя Figma Дилана Филда для всех, кто пропустил Config! Дилан не только анонсировал новинки и показал всё в живых демонстрациях, но и поговорил о том, как совместная работа в дизайне продолжает набирать популярность и помогает создавать что-то большое. “Ничто выдающееся не делается в одиночку” — подытожил он. #config
→ https://youtu.be/v4g-oZ6mFIc
До начала Config 2021 остался один час! Как принято, она начнётся с презентации новинок! Как думаешь, что будет анонсировано сегодня? Предлагаем обсудить это с друзьями и сверить результаты после презентации — мы опубликуем все анонсы! #config
Одна неделя до Config! Время регистрации продлили до понедельника, ещё есть время зарегистрироваться и рассказать друзьям! #config Что нужно знать о конференции:
• 21 и 22 апреля с 19:00 до 00:00 по Москве
• 60 спикеров, три темы: “Embracing the mess”, “In the file”, “Shifting team culture”
• Анонсы и релизы новых фич и истории их создания от команды
• Варенье из инжира? 😍
👉👉👉 Регистрируйся: https://config.figma.com/
Что может быть лучше одного дня Config? Конечно же целых два дня конференции! 😍 21 и 22 апреля будет проходить долгожданная ежегодная конференция Figma. Начало в 19:00 и окончание в полночь по Москве в оба дня. #config
Более 50 спикеров изо всех уголков планеты (включая меня😎) поделятся своим опытом, знаниями и историями связанными с Figma, совместной работой и творчеством. 👉 Обязательно успей зарегистрироваться до 15 апреля, рассказывай всем друзьям и коллегам: https://config.figma.com/
Config возвращается! Следующая всемирная виртуальная конференция Figma пройдёт 21 апреля 2021 — присоединяйся! #config
На сайте config.figma.com ты можешь подписаться на оповещения о начале регистрации. Хочешь рассказать о своей команде, внутренних процессах и совместной работе в Figma? Ты можешь подать заявку на выступление (на английском) до 21 февраля.
💥💥💥Сегодня в 18:00 (Мск) стартует очередной #Config Figma. На нем будут представлены обновления.
Регистрируйся и смотри по ссылке https://config.figma.com/
В ближайшее время будет информация по всем обновлениям.
Вступительное выступление Дилана Филда (Dylan Field) с Config Europe теперь доступно для просмотра. Узнай как работают новые фичи представленные сегодня, а также какие новинки нас ожидают этой осенью и зимой! #config
Записи остальных выступлений с конференции будут доступны 15 октября!
▶️https://youtu.be/lWy4fB3G9Gc
Последний шанс зарегистрироваться на нашу онлайн конференцию Config Europe — это бесплатно! Начало через час! #config
Регистрируйся: https://hopin.to/events/config-europe
Подробности: https://config.figma.com
Config Europe — вторая конференция Figma уже не за горами!
🌏 Конференция проводится полностью онлайн
📅 17 сентября 2020
🕓 14:00 – 19:00 по Москве
🤑 Вход бесплатный для всех!
Регистрируйся уже сейчас и рассказывай друзьям: https://config.figma.com#config