Функция 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
#conference
🇺🇿2024 йил 18 апрель куни Тошкент Кимё халқаро университети томонидан «Тил ва таржима масалалари» мавзусида халқаро илмий-амалий анжуман конференцияси ўтказилади.
—-
🇬🇧Kimyo International University in Tashkent plans to hold an international scientific-practical conference on "Issues of language and translation" on April 18, 2024.
—-
🇷🇺18 апреля 2024 года в Ташкентском международном университете Кимё планируется проведение международной научно-практической конференции на тему «Вопросы языка и перевода».
🔗🇺🇿🇬🇧🇷🇺Подробнее: https://kiut.uz/ru/novosti/til-va-tarzhima-masalalari/
🗓Семинар «Точность регистрации причин смерти: повседневные условия, кризисы и эпидемии»
📍 Пройдет 19-20 марта 2026 года в Барселоне, Испания.
⏰ Дедлайн для подачи: 10 декабря 2025 года.
#conference
🗓Ежегодная конференция Европейского консорциума социологических исследований 2026 года - «Неравенство по замыслу? Социальные разногласия в эпоху неопределенности»
📍 Пройдет 15-17 июня 2026 года в Тринити Колледж Дублин, Ирландия.
⏰ Дедлайн: 11 января 2026 года.
#conference
🗓Европейская конференция о населении (European Population Conference)
📍 Пройдет 3-6 июня 2026 года в Болонье, Италия.
⏰ Дедлайн для подачи: 1 ноября 2025 года.
#conference
🗓Семинар «Социально-экономическое неравенство в смертности с течением времени»
📍 Пройдет 27 февраля 2026 года в Эде, Нидерланды.
⏰ Дедлайн для подачи: 1 октября 2025 года.
#conference
Седьмая Совместная аспирантская конференция (1Joint Doctoral Conference) в Университете Бамберга
Пройдет 13-14 ноября 2025 года в Бамберге, Германия
Дедлайн для подачи: 16 мая 2025
Подробности: https://www.uni-bamberg.de/en/bagss/seventh-joint-doctoral-conference-2025/
#conference
12-ая ежегодная Международная Конференция в Демографии и Исследованиях Населения (12th Annual International Conference on Demography and Population Studies)
Пройдет 16-19 июня 2025 в Афинах, Греция.
Дедлайн для подачи абстрактов: 6 Мая 2025
Подробности:https://www.atiner.gr/demography
#conference
Воркшоп "Миграция и технологии разграничения" (Migration and Technologies of Bordering) пройдет 6 июня 2025 г. в Университете Суррея, Великобритания
Дедлайн подачи абстрактов: 7 марта 2025 г.
Подробнее: www.ias.surrey.ac.uk/event/migration-and-technologies-of-bordering/
#conference
Международная конференция «Демографический переход: Политические последствия тенденций рождаемости и старения» пройдет в Вильнюсе (Литва) 23-24 мая 2025 года
Дедлайн подачи абстракта: 3 марта 2025 года.
Подробности: cipe.umd.edu/conferences/TheDemographicTransition/Vilnius_Call%20for%20Papers_25_0124B.pdf
#conference
7 симпозиум HMD: Растущие различия в продолжительности жизни в странах с высоким доходом
Пройдет 9–10 октября 2025 года в Париже, Франция.
Дедлайн для подачи: 30 марта 2025 года
Подробности: https://www.mortality.org/File/GetDocument/Public/Docs/HMDsymposium2025-announcement.pdf
#conference
Симпозиум "Демографические и медицинские последствия насилия и вооруженных конфликтов" (Demographic and Health Consequences of Violence and Armed Conflict)
Пройдет 1–2 июля 2025 года в Институте демографических исследований Макса Планка (Росток, Германия)
Дедлайн: 14 марта 2025 года
Подробности: https://www.demogr.mpg.de/en/news_events_6123/calendar_1921/demographic_and_health_consequences_of_violence_and_armed_conflict_13967
#conference