Функция 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
🔬BRCA1/2 у мужчин: новые данные, способные привести к изменениям клинической практики?🔬
⚡️Свежий обзор в JAMA Oncology подчеркивает необходимость пересмотра подходов к скринингу и лечению мужчин с мутациями BRCA1/2.
ℹ️Эти мутации традиционно ассоциируются с такими диагнозами как рак молочной железы и яичников у женщин, НО данные подтверждают их значимость и для мужского населения.
Ключевые выводы:
• Рак предстательной железы: носители мутации BRCA2 имеют повышенный риск развития рака предстательной железы в 4,7–8,6 раза по сравнению с общей популяцией. Абсолютный пожизненный риск достигает 60%. Для BRCA1 риск вырастает до 3,8 раза, с пожизненным риском в 15-45%.
• Рак молочной железы: Хотя это заболевание редко встречается у мужчин, у носителей BRCA2 риск возрастает до 7% (в сравнении с менее 1% в общей популяции). Риск для BRCA1 также повышен, но менее выражен.
• Рак поджелудочной железы: Мутации BRCA2 увеличивают риск развития рака поджелудочной железы в 3,5 раза. Носители BRCA1 также подвержены повышенному риску, но в меньшей степени.
Клинические рекомендации:
• Генетическое тестирование: Мужчины, особенно с отягощенным анамнезом по РМЖ, яичников или поджелудочной железы, должны рассматриваться для генетического тестирования. Э
• Скрининг: Исследование IMPACT подтверждает, что ежегодный скрининг PSA у мужчин с BRCA2 позволяет выявлять рак предстательной железы на более ранних стадиях, что значительно улучшает прогноз. Рекомендовано начинать скрининг с 40-45 лет.
• Терапия: Ингибиторы PARP показывают многообещающие результаты в лечении BRCA-ассоциированных раков у мужчин. Однако следует помнить о необходимости индивидуализированного подхода, особенно в отношении комбинированной терапии.
Ну а чтобы ответить на вопрос о необходимости внесения изменений в клиническую практику переходите👉 по ссылке👈и ждем Ваше мнение в комментариях 👇
#онкология#BRCA#мужскоездоровье#генетика#скрининг#JAMAOncology#МОО