Функция 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
НАБОР НА КЛИНИЧЕСКОЕ ИССЛЕДОВАНИЕ!
Дети из России и стран СНГ, которые имеют установленный клинически диагноз СМА и возраст дебюта (появление первых симптомов заболевания) до 180 дней (6 месяцев) от рождения и до 240 дней (8 месяцев).
За время проведения клинического исследования ANB-004-1/BLUEBELL будут оценены основные показатели безопасности и эффективности после однократного внутривенного введения различных доз препарата ANB-004 у пациентов!
Данное исследование пройдет в 6 исследовательских центрах разных городов Российской Федерации, таких как Москва, Санкт-Петербург, Екатеринбург и т. д.
Задать интересующие вопросы об участии в клиническом исследовании, в том числе уточнить контактную информацию об исследовательских центрах, можно на сайте https://ct.biocad.ru
Спонсором клинического исследования выступает компания АО «БИОКАД»
Если вы знаете того, кому будет актуальна эта информация, напишите нам или поделитесь с ним этим постом!
За репост и распространение будем очень признательны🙏🏼
#biocad
Уважаемые коллеги!
🚨 Напоминаем, что уже завтра, 27 апреля 2023 года состоится научно-практическая конференция"Опухоли женской репродуктивной системы - изменились ли алгоритмы лечения?".
Мы будем рады видеть Вас!
Примите участие, поделитесь своими знаниями и опытом, проведите плодотворную дискуссию с нашими экспертами.
Вы можете посетить мероприятие очно или присоединиться с любого устройства при наличии выхода в Интернет
📌 Дата мероприятия: 27 апреля 2023 г.
📌 Время проведения: 15:00 – 18:00
📌 Место проведения: МКНЦ им. А.С. Логинова, г. Москва, шоссе
Энтузиастов, д. 86, стр. 6,
Предусмотрена онлайн-трансляция.
📌 Регистрация: на месте или на сайте MedX.pro.
📌 Программа конференции представлена в следующем посте 👉
#МосковскоеОнкологическоеОбщество
#Eisai
#AstraZeneca
#BIOCAD
Уважаемые коллеги!
Приглашаем вас принять участие в научно-практической конференции"Опухоли женской репродуктивной системы - изменились ли алгоритмы лечения?".
Наши спикеры расскажут вам:
🎗️ Молекулярная классификация рака эндометрия в реальной клинической практике.
🎗️ Эволюция терапевтических подходов к лекарственной терапии распространенного рака яичников.
🎗️ Мультидисциплинарный подход к сохранению репродуктивного здоровья в рамках стратегии повышения качества жизни после проведенного гонадотоксического лечения у онкологических больных.
У вас будет возможность прослушать доклады представителей таких компаний, как Eisai, AstraZeneca, Биокад и провести с ними плодотворную дискуссию.
Дата мероприятия: 27 апреля 2023 г.
Время проведения: 15:00 – 18:00
Место проведения: МКНЦ им. А.С. Логинова, г. Москва, шоссе
Энтузиастов, д. 86, стр. 6,
Предусмотрена онлайн-трансляция.
Регистрация: на месте или на сайте MedX.pro.
Программа конференции представлена в следующем посте 👉
#МосковскоеОнкологическоеОбщество
#Eisai
#AstraZeneca
#BIOCAD