Функция 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
#резюме#GR#project#consulting
Андрей Колпаков — выпускник МГИМО (ФУП, бакалавриат 2023 / магистратура 2025)
Работал в Фонде капитального ремонта общего имущества МКД Московской области — координировал проекты по капитальному ремонту многоквартирных домов; организовывал взаимодействие между подрядчиками, органами местного самоуправления, жителями, Техническим надзором, разрешал конфликтные ситуации между перечисленными сторонами; осуществлял строительный контроль производства работ; умелый пользователь MS Office, систем ЭДО, МСЭД.
Хотел бы применить свой опыт в корпоративной сфере — в проектах, где важны переговоры, аналитика и взаимодействие с госструктурами. Ищет роли в GR/Public Affairs, управлении проектами, консалтинге.
Свободно владеет английским, французскими немецким.
📎 Резюме — в приложении
✉️ Контакты: tg - @KAV2247 | +7 (921) 397-43-98| [email protected]
🔔 “Biznesda mahorat darslari” loyihasi doirasida uchrashuv
📣 Hurmatli professor-o‘qituvchilar, tinglovchilar va mehmonlar! Sizlarni “Biznesda mahorat darslari” loyihasi doirasida bo‘lib o‘tadigan uchrashuvga taklif etamiz.
💼 Loyihaning navbatdagi mehmon ma’ruzachisi Farxod Jabbarov biznes konsultant, “Sherikkon Consulting” kompaniyasi Ijrochi direktori.
✅ Farxod Jabbarov kichik va o‘rta biznesni rivojlantirish, innovatsion boshqaruv, qiymat zanjirini rivojlantirish kabi yo‘nalishlarda yetakchi ekspertlardan sanaladi.
👨🦱 Farxod Jabbarov BMTTD, YTTB va GIZ kabi xalqaro tashkilotlarda biznesni qo‘llab-quvvatlash bo‘yicha loyihalarni amalga oshirgan.
🔴 Tadbir o‘zbek tilida olib boriladi.
🗓 Sanasi: 14 - iyun, 2024-yil
⏰ Vaqti: 10:30
📍Manzil: Biznes va tadbirkorlik oliy maktabi (5-qavat, №1)
🇬🇧 Eng
🇷🇺 Ru
#GraduateSchool#Consulting#GIZ#SME
🌐Web-site |
✅Telegram |
✅Facebook |
🌐Instagram
#резюме#GR#project#consulting#ESG
Никита Андрианов — выпускник МГИМО (МО, бакалавриат 2018 / магистратура 2020), более 5 лет опыта в международных проектах, переговорах и коммуникациях.
Работал в Постпредстве России при ООН в Нью-Йорке, Посольстве в Пакистане и Центральном аппарате МИД — координировал межведомственные проекты в сфере устойчивого развития и энергетики, согласовывал резолюции Генассамблеи ООН, готовил брифы и тезисы для выступлений. Развивал экспертизу по странам Южной Азии — от работы в Посольстве в Пакистане до взаимодействия с делегациями региона в ООН.
Хотел бы применить свой опыт в корпоративной сфере — в проектах, где важны переговоры, аналитика, взаимодействие с госструктурами и устойчивое развитие. Ищет роли в GR/Public Affairs, ESG и управлении проектами в Москве.
Свободно владеет английским, урду и хинди.
📎 Резюме — в приложении
✉️ Контакты: @Nikita_Andrianov | +7 906 796-60-26 | [email protected]
Funding Round for Operating Platform
Operating secures $524.20K in funding round on December 17, 2024. This SaaS platform focuses on resource management, skills-based project staffing, and time tracking tailored for consulting firms and professional services teams.
#Funding#SaaS#ResourceManagement#ProjectStaffing#TimeTracking#Consulting#ProfessionalServices