Функция 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
ЛАЗЕРНЫЙ БИЛЕТ ИЗ СЕРИИ «ЦЕРЕМОНИЯ ЗАПУСКА» | ОФИЦИАЛЬНЫЙ МЕРЧ | AZURLANE
🌟Персонажи:
🌟 Z52
🌟 Fritz Rumey
🌟 Raffaello
🌟 Moskva
🌟Детали:
⭐ Товар ЛИМИТИРОВАН, продажи будут до 12 МАРТА
⭐Предпродажа, отправка на склад в течение 200 дней
⭐Размеры: 20х7 см
🌟Цена: 650 🌟 (рублей)
🌟Доставка:
🅰️ Цена указана С УЧЕТОМ доставки ДО РФ
🌟Обратная связь:
⁉️Вопросы о доставке, оплате и тд.
👀Отзывы
🌟Купить:
🅰️@astroknight_bot
🅰️ С реальными менеджерами
#AzurLane@astroknightshop
#Z52@astroknightshop
#FritzRumey@astroknightshop
#Raffaello@astroknightshop
#Moskva@astroknightshop
🍨Сладкий дресс-код: CHARMSTORE и Raffaello предлагают начать деловой сезон со вкусом
Пока все скупают канцтовары и грустят по уходящему лету, бренды нашли изящный способ «подсластить» возвращение к рутине.
👗Российский бренд одежды CHARMSTORE в партнерстве с Ferrero (владельцем марок Raffaello и Ferrero Rocher) выпустил капсульную коллекцию, чтобы возвращение в офис или в университет после каникул было максимально приятным.
Идея в том, чтобы превратить начало делового сезона из обязанности в dolce vita.
👗Что внутри «конфетной» коллекции?
• Платья: объемные модели с открытой спиной и рукавами-буфами в ванильных и золотых оттенках.
• Блузы: акцентные модели с бантами для строгих, но нескучных образов.
• Брюки-баллоны и аксессуары: золотистые сумки-мешки и… чалмы.
🎨 Дизайн и палитра:
Вся коллекция пронизана кондитерской эстетикой: нежные пастельные оттенки, кремовые и золотистые тона, летящие ткани и лаконичные, но запоминающиеся формы.
🛍️ Где брать?
В кондитерском отделе
Коллекция доступна с 19 августа в бутиках CHARMSTORE и на официальном сайте fashion-бренда.
👛Почем радость?
Платья - от 29 до 42 коробок Raffaello или Ferrero Rocher
Сумки - от 9 до 13 коробок
Чалмы - от в 6 до 8 коробок сладостей в рублевом эквиваленте**
⭐️Коммент для маркетологов (со «звездочкой»)
Почему коллаборации с конфетами в сезон «Back to School» — это «пятерка» за стратегию и тактику?
Во-первых, бренды «играют на эмоциях». Конец лета и каникул часто ассоциируется с грустью и стрессом. Бренды предлагают «дофаминовую прививку» — покупку, которая становится наградой и утешением.
Ассоциация новой блузки с нежным вкусом конфет удваивает эффект, превращая рутинный шопинг в акт заботы о себе.
Во-вторых, это расширение аудитории и отличный инфоповод. Коллаборации создают шум, привлекая внимание как fashion-шопоголиков, так и любителей сладкого.
Именно так бренды могу «обменяться» лояльной аудиторией и выделиться на фоне стандартных «осенних коллекций».
В итоге, одежда перестает быть просто одеждой, а конфеты — просто десертом. Они становятся частью общего лайфстайл-сообщения: «Начинайте новый сезон красиво и со вкусом!»
Из таких же остроумно-пищевых коллабов в нашей стране вспоминается апрельский дуэт Роллтон х Beauty Bomb. Из того, что #неунас — rhode х Krispy Creame в 2023 и Crocs х McDonalds (классика)
А вообще марки из мира fashion и красоты активно сотрудничают со «вкусными» марками и для этого есть даже отдельный тренд под названием #foodcore
………………..
*Источник: соцсети и официальный сайт марки
**Как мы считали
1 коробка Raffaello (150 г) = 450 руб
1 коробка Ferrero Rocher (200 г) = 650
#августомания@girlinmall#коллаб@girlinmall#charmstore#raffaello