Функция 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
ASTROKNIGHT CARDS | ASTROKNIGHT EXCLUSIVE | ХУГО ВЛАД | ZENLESS ZONE ZERO
by LIVIL
Долгожданная карточка для тех, кто оформлял предзаказ на нендороид Хуго Влада
Все, кто заказал нендороид до выхода карточки обязательно её получат
🌟Условия получения:
— Действует по 30.06.26
— Оформление предзаказа (достаточно оплатить депозит) на нендороид Хуго Влада
— Предзаказ можно оформить только на сайте по 30.06.26!
— Предзаказ через бот закрыт!
— Размер а6
— Высылаться карточка будет вместе с нендороидами
🌟 Товар на сайте: тык
#cards@astroknightshop
ASTROKNIGHT CARDS | ASTROKNIGHT EXCLUSIVE | РАФАЭЛЬ | LOVE AND DEEPSPACE
by —AkiSaari—
— Долгожданная карточка для тех, кто оформлял частичные взносы за нендороид Рафаэля
— Размер а6
— Высылаться карточка будет вместе с нендороидами
— На выбор карточка с подписью и без, о выборе сообщить в @astromanagers
#cards@astroknightshop
ASTROKNIGHT CARDS | ASTROKNIGHT EXCLUSIVE | САЙЛУС | LOVE AND DEEPSPACE
by —AkiSaari—
— Долгожданная карточка для тех, кто оформлял частичные взносы за нендороид Сайлуса
— Размер а6
— Высылаться карточка будет вместе с нендороидами
— На выбор карточка с подписью и без, о выборе сообщить в @astromanagers
#cards@astroknightshop
ASTROKNIGHT EXCLUSIVE | ASTROKNIGHT CARDS | ЧИСА | WUTHERING WAVES
16+
Карточка by RINGEKO
Обратная сторона by —AkiSaari— (будет в комментариях позже)
Условия получения:
— Заказ WuWa от 3000 рублей
— Участвуют только разовые платежи, без суммирования (т.е. покупка на 3000 и больше за раз)
— Действует с 23.03.26 по 06.04.26
— Размер открытка
— Готова карточка будет через 1.5-2.5 месяца {после окончания срока действия карточки}
#cards@astroknightshop
ASTROKNIGHT EXCLUSIVE | ASTROKNIGHT CARDS | АСТРА ЯО | ZENLESS ZONE ZERO
Карточка by RINGEKO
Обратная сторона by —AkiSaari— (будет в комментариях позже)
Условия получения:
— Заказ ZZZ от 3000 рублей
— Участвуют только разовые платежи, без суммирования (т.е. покупка на 3000 и больше за раз)
— Действует с 23.03.26 по 06.04.26
— Размер а6
— Готова карточка будет через 1.5-2.5 месяца {после окончания срока действия карточки}
#cards@astroknightshop
ASTROKNIGHT EXCLUSIVE | ASTROKNIGHT CARDS | ИСКРА | HONKAI STAR RAIL
Карточка by RINGEKO
Обратная сторона by —AkiSaari— (будет в комментариях позже)
Условия получения:
— Заказ Honkai Star Rail от 3000 рублей
— Участвуют только разовые платежи, без суммирования (т.е. покупка на 3000 и больше за раз)
— Действует с 23.03.26 по 06.04.26
— Размер а6
— Готова карточка будет через 1.5-2.5 месяца {после окончания срока действия карточки}
#cards@astroknightshop
ASTROKNIGHT EXCLUSIVE | ASTROKNIGHT CARDS | СКИРК | GENSHIN IMPACT
Карточка by RINGEKO
Обратная сторона by —AkiSaari— (будет в комментариях позже)
Условия получения:
— Заказ Genshin Impact от 3000 рублей
— Участвуют только разовые платежи, без суммирования (т.е. покупка на 3000 и больше за раз)
— Действует с 23.03.26 по 06.04.26
— Размер а6
— Готова карточка будет через 1.5-2.5 месяца {после окончания срока действия карточки}
#cards@astroknightshop
ASTROKNIGHT EXCLUSIVE | ASTROKNIGHT CARDS | ПЕРЛИКА | ARKNIGHTS: ENDIELD
Карточка by RINGEKO
Обратная сторона by —AkiSaari— (будет в комментариях позже)
Условия получения:
— Заказ Endfield от 3000 рублей
— Участвуют только разовые платежи, без суммирования (т.е. покупка на 3000 и больше за раз)
— Действует с 23.03.26 по 06.04.26
— Размер а6
— Готова карточка будет через 1.5-2.5 месяца {после окончания срока действия карточки}
#cards@astroknightshop
ASTROKNIGHT EXCLUSIVE | ASTROKNIGHT CARDS | ВОСКРЕСЕНЬЕ | HONKAI STAR RAIL
Открытка by—AkiSaari—
Условия получения:
— Оформление предзаказа на фигурку Воскресенья (Вер. Live 2025)
* Достаточно оформить депозит для предзаказа
— Действует с 06.03.26 по 10.04.26
— Формат открытки
— Карточка будет высылаться вместе с фигуркой
#cards@astroknightshop
🆕🆕🆕🆕🆕$CARDS is on Fire!
⚡️ Smart entry, big potential
⚡️ Strong community backing
⚡️ Solana ecosystem ka next gem
Chart dekho 📈 — momentum real hai!
Abhi early ho ya late… winners wahi hain jo move karte hain.
💎 Early buyers already locking profits
🌐 Liquidity growing every hour
🕒 Timing is everything — don’t miss out
📊 $CARDS could be the next breakout star
▶️Don’t miss the pump!
🔤🔤
https://web3.okx.com/zh-hans/token/solana/CARDSccUMFKoPRZxt5vt3ksUbxEFEcnZ3H2pd3dKxYjp
CA. CARDSccUMFKoPRZxt5vt3ksUbxEFEcnZ3H2pd3dKxYjp
#Solana#Crypto#CARDS#Pump
🎴Карточки: как стать профессионалом в мире бизнеса с Высшей школой бизнеса и предпринимательства
🏛 Высшая школа бизнеса и предпринимательства при Кабинете министров Узбекистана в карточках рассказала о преимуществах и направлениях обучения.
#GraduateSchool#Cards#Professional#MassMedia
Web-site | Telegram | Facebook | Instagram
https://www.spot.uz/ru/2024/03/27/business-school/