Функция 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
🎮Qlever reklama va ijtimoiy mas'uliyat uchun imkoniyatlar ochadi!
Qlever.Asia - bu Markaziy Osiyoda 200 000 dan ortiq foydalanuvchilar va O'zbekistonda 40 000 dan ortiq ro'yxatdan o'tgan o'yinchilar auditoriyasiga ega innovatsion ta'limiy platforma. Endilikda brendlarda nafaqat reklama joylashtirish, balki tanqidiy tafakkur va mediasavodxonlikni qo'llash orqali ijtimoiy mas'uliyatni namoyon qilish imkoniyati mavjud.
🐕Reklama formatlari:
✅Platformada reklama materiallarini joylash (yangiliklar, PR-maqolalar)
✅Sovg'alarga homiylik qilish (brend mahaulotlar, vaucherlar, gadjetlar)
✅Ijtimoiy tarmoqlarga integratsiya (postlar, reelslar)
🤝 Ijtimoiy loyihani qo'llab-quvvatlang!
Qlever bilan hamkorlik — bu nafaqat marketing foydasi, balki biznesingizning ijtimoiy yo'nalganligini ta'kidlash imkoniyati. Siz mintaqada ta'lim va tanqidiy tafakkurga hissa qo'shib, loyiha rivojini qo'llashingiz mumkin.
📥 Hamkorlik va qo'llab-quvvatlash masalalari bo'yicha TG (@DaryaNicolayevna) yoki [email protected] pochta orqali murojaat qiling!
🔺🔺🔺
🎮Qlever открывает возможности для рекламы и социальной ответственности!
Qlever.Asia — это инновационная образовательная платформа с аудиторией более 200 000 пользователей в Центральной Азии и около 40 000 зарегистрированных игроков в Узбекистане. Теперь у брендов есть возможность не только разместить рекламу, но и продемонстрировать социальную ответственность, поддержав развитие критического мышления и медиаграмотности.
🐕 Форматы рекламы:
✅ Размещение рекламных материалов на платформе (новости, PR-статьи)
✅ Спонсирование призов (брендированные товары, ваучеры, гаджеты)
✅ Интеграции в социальные сети (посты, рилсы)
🤝Поддержите социальный образовательный проект!
Партнерство с Qlever — это не только маркетинговая выгода, но и возможность подчеркнуть социальную ориентированность вашего бизнеса. Вы также можете сделать пожертвование на развитие проекта, внеся вклад в образование и критическое мышление в регионе.
📥 По вопросам сотрудничества и поддержки пишите в TG (@DaryaNicolayevna) или на почту [email protected]!
#Реклама#Партнерство#СоциальнаяОтветственность#Qlever#Reklama#Hamkorlik#IjtimoiyMasuliyat
🎮Qlever reklama va ijtimoiy mas'uliyat uchun imkoniyatlar ochadi!
Qlever.Asia - bu Markaziy Osiyoda 200 000 dan ortiq foydalanuvchilar va O'zbekistonda 40 000 dan ortiq ro'yxatdan o'tgan o'yinchilar auditoriyasiga ega innovatsion ta'limiy platforma. Endilikda brendlarda nafaqat reklama joylashtirish, balki tanqidiy tafakkur va mediasavodxonlikni qo'llash orqali ijtimoiy mas'uliyatni namoyon qilish imkoniyati mavjud.
🐕Reklama formatlari:
✅Platformada reklama materiallarini joylash (yangiliklar, PR-maqolalar)
✅Sovg'alarga homiylik qilish (brend mahaulotlar, vaucherlar, gadjetlar)
✅Ijtimoiy tarmoqlarga integratsiya (postlar, reelslar)
🤝 Ijtimoiy loyihani qo'llab-quvvatlang!
Qlever bilan hamkorlik — bu nafaqat marketing foydasi, balki biznesingizning ijtimoiy yo'nalganligini ta'kidlash imkoniyati. Siz mintaqada ta'lim va tanqidiy tafakkurga hissa qo'shib, loyiha rivojini qo'llashingiz mumkin.
📥 Hamkorlik va qo'llab-quvvatlash masalalari bo'yicha TG (@DaryaNicolayevna) yoki [email protected] pochta orqali murojaat qiling!
🔺🔺🔺
🎮Qlever открывает возможности для рекламы и социальной ответственности!
Qlever.Asia — это инновационная образовательная платформа с аудиторией более 200 000 пользователей в Центральной Азии и около 40 000 зарегистрированных игроков в Узбекистане. Теперь у брендов есть возможность не только разместить рекламу, но и продемонстрировать социальную ответственность, поддержав развитие критического мышления и медиаграмотности.
🐕 Форматы рекламы:
✅ Размещение рекламных материалов на платформе (новости, PR-статьи)
✅ Спонсирование призов (брендированные товары, ваучеры, гаджеты)
✅ Интеграции в социальные сети (посты, рилсы)
🤝Поддержите социальный образовательный проект!
Партнерство с Qlever — это не только маркетинговая выгода, но и возможность подчеркнуть социальную ориентированность вашего бизнеса. Вы также можете сделать пожертвование на развитие проекта, внеся вклад в образование и критическое мышление в регионе.
📥 По вопросам сотрудничества и поддержки пишите в TG (@DaryaNicolayevna) или на почту [email protected]!
#Qlever#Реклама#Партнерство#СоциальнаяОтветственность#Qlever#Reklama#Hamkorlik#IjtimoiyMasuliyat