Функция 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
🌎 The wood frog survives Alaskan winters by freezing solid—its heart stops, and ice crystals form inside its body. Special proteins protect its cells until spring, when it thaws and hops away. Some populations can survive temperatures as low as -18°C. ✨
#adaptation⚡#amphibian⚡#freeze
👉subscribe Interesting Planet
🌎 The Antarctic nematode worm, Panagrolaimus davidi, can survive being frozen completely solid for months. Its cells tolerate freezing by producing natural antifreeze, allowing it to “reawaken” when thawed—a rare feat for complex animals in extreme cold. ✨
#Antarctic⚡#freeze⚡#survival
👉subscribe Interesting Planet
🤨
🥸
🤔
😱
😉
✦ Большинство считает, что услуги «Кредитный запрет» и «Freeze» – это одно и то же. Однако на самом деле между ними есть различие.
✦ А вы знали об этом?
❄Услуга «Freeze» – предоставляет физическим лицам возможность запретить пользователям кредитной информации получать из Кредитного бюро «КАТМ» сведения об их кредитной истории по новым кредитным заявкам.
Это, в свою очередь, делает невозможным оформление кредита на имя лица, у которого данная услуга активирована.
⛔️«Кредитный запрет» предоставляет физическим лицам возможность запретить заключение кредитного договора с их участием с целью предотвращения оформления кредита без их ведома или согласия.
Данная услуга не ограничивает кредитные организации в изучении кредитной истории.
📄Перед предоставлением кредита кредитные организации проверяют, установил ли физическое лицо запрет на заключение кредитного договора в отношении себя. В случае выявления такого запрета кредит не предоставляется.
🇺🇿 В соответствии с изменениями, внесёнными в законодательство, кредитной организациизапрещается заключать договор с клиентом без проверки наличия либо отсутствия указанного запрета. В противном случае кредитная организация несёт ответственность за правовые последствия, вытекающие из кредитного договора, оформленного без участия или уведомления физического лица.
❕Для сведения:
Услуги «Freeze» и «Кредитный запрет» активируются и отменяются самим физическим лицом самостоятельно.
▫️Через мобильное приложение и официальный веб-сайт Кредитного бюро
«Кредитно-информационный аналитический центр» услуга «Кредитный запрет» предоставляется бесплатно.
◽️Стоимость услуги «Freeze» составляет 13 843,20 сум (0,03 БРВ);
➖➖➖➖➖
▫️Через мобильное приложение или веб-портал Единого интерактивного портала государственных услуг, услуга
«Установление или снятие запрета на заключение кредитного договора» предоставляется бесплатно.
◽️С учётом 10-процентной скидки стоимость услуги "Ограничение доступа к кредитной истории" составляет 12 458,88 сум (0,03024 БРВ).
⚠️Защитите себя от мошенников с помощью услуги «Кредитный запрет»!
#KATM#Кибербезопасность
#Freeze#КредитныйЗапрет
#ФинансоваяГрамотность
🔘Следите за нами в социальных сетях!
🌐Website🚀Telegram🔵Facebook
📷Instagram🎬Youtube🎰Linkedin