Функция 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
Вьетнамцы устанавливают алтари для поклонения духам в офисах, чтобы с помощью традиционной магии повысить прибыльность бизнеса. Есть такое сакральное место и в «Ханой-Москва». Алтарь размещен в деревянном коробе с резными орнаментами — драконами, листьями и солярными символами. Он стоит на полу в месте, указанном мастером фэн-шуй, игнорируя удобство интерьера и симметрию.
Внутри короба — фарфоровые идолы, подставка с пятью стопками для алкоголя и блюдце для подношений (сигареты, ритуальные деньги, конфеты). Снаружи — курильница с ароматными палочками, поднос с фруктами и ваза с хризантемами. Ночью алтарь подсвечивают красными лампами.
Ежедневно специальный сотрудник проводит церемонию: подносит свежие фрукты, цветы и зажигает палочку. Расходы на алтарь никогда не сокращают, даже в кризис — это считается святотатством. В особые дни по лунно-солнечному календарю организуют расширенные ритуалы с участием владельца.
Для вьетнамцев важно поддерживать отношения с духами, демонами и призраками, соблюдая множество правил и исключений, подобно земным законам.
#ханоймосква#ханой#hanoimoscow#hanoi
Банкомат Азиатско-Тихоокеанского банка установили в ТЦ «Ханой-Москва» на -1 этаже рядом с супермаркетом «Пятерочка». Машина оснащена модулями выдачи и приема наличных, они предоставляют возможность осуществления платежей и подписки на дистанционное банковское обслуживание. По сути, он являются мини-офисом банка, позволяющими оказывать широкий спектр услуг клиентам - держателям карт международных платежных систем, а также всем покупателям.
✅Где: ТЦ «Ханой-Москва», - 1 этаж (рядом с супермаркетом «Пятерочка»)
Справка:
Азиатско-Тихоокеанский банк – один из крупнейших банков Дальнего Востока и Сибири с мультирегиональной сетью, работает на российском рынке с 1992 года.
АТБ обслуживает более 305 000 розничных и 30 000 корпоративных клиентов. Сеть банка охватывает 22 региона России. Головные офисы расположены в Благовещенске и Москве. В банке работает более 3 700 сотрудников. Чистые активы АТБ составляют 334,5 млрд рублей.
*Информационный пост, не является рекламой
#ханоймосква#ханой#hanoimoscow#hanoi
В Ханой-Москва стартовал традиционный пятничный КВИЗ, сегодня он проходит под грифом Новогодний! Команды пришли в традиционных праздничных нарядах и с роскошном настроением.
#ханоймосква#ханой#тцханоймосква#hanoimoscow#hanoi
А ещё в торговом центре установлена тематическая фотозона, на которой любой гость Ханой-Москва может запечатлеть себя на память 👻
#ханоймосква#ханой#тцханоймосква#hanoimoscow#hanoi#hanoimoscow
В Ханой-Москва стартовал традиционный пятничный КВИЗ ❤️ Команды начали сражение в интеллектуальной схватке! Пусть победят сильнейшие🤞
#ханоймосква ханой #тцханоймосква#hanoimoscow#hanoi#moscow
Злая, но красивая, ведьма украла таланты у артистов Цирка чудес, но маленькие гости Ханой-Москва помогут их вернуть!
#ханоймосква#тцханоймосква#hanoimoscow#hanoi#moscow
В Ханой-Москва стартовал традиционный пятничный КВИЗ, сегодня с приставкой РОК🤟 Желаем всем командам удачи и пусть победит сильнейший 🫶🫰
#ханоймосква#тцханоймосква#hanoimoscow#hanoi#moscow
А ещё в Ханой-Москва всегда можно нарисовать сакральный рисунок хной - мехенди, зашифровав послание ко Вселенной. Стоимость от 350 рублей.
#ханоймосква#тцханоймосква#hanoimoscow#hanoi#moscow
В Ханой-Москва пришла старая-добрая сказка! Малыши смотрят кукольный спектакль "Волк и семеро козлят" и находятся в предвкушение встречи с Бабой Ягой.
#ханоймосква#hanoimoscow#hanoi#moscow#ханой
Очаровательная Баба Яга приехала в Ханой-Москва, чтобы сварить волшебное зелье! Следим за магией 😍
#ханоймосква#ханой#тцханоймосква#hanoimoscow#hanoi#moscow
Параллельно шоу-программы "В гостях у сказки" маленьким гостям торгового центра наносят аэротату😍
#ханоймосква#ханой#тцханоймосква#hanoimoscow#hanoi#moscow