Функция 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
Сегодня в Париже ⏱️ начинаются летние #Olympics 2024 года, которые пройдут во Франции с 26 июля по 11 августа. #Paralympics пройдут там же с 28 августа по 8 сентября и вместе игры соберут 4 400 самых выдающихся спортсменов-паралимпийцев мира.
Эти игры станут 🥇 первыми, на которых будет представлено одинаковое количество спортсменов среди мужчин и женщин. Также именно в этом году в Париже состоится дебют брейк-дансa в качестве олимпийского вида спорта.
А что нам известно про участие России на Играх❓Спортсмены из России и Беларуси будут выступать на Олимпиаде в качестве индивидуальных нейтральных спортсменов. Напомним, что России и Беларуси запрещено отправлять команды на Игры после вторжения России в Украину, которое поддержала Беларусь.
Однако странам предлагается прислать отдельных спортсменов, которые отвечают🫸 строгим критериям, установленным Международным олимпийским комитетом, в отношении того, поддерживают ли спортсмены войну или имеют ли они военные связи.
Желаем 🏆 удачи всем спортсменам Великобритании на Олимпийских играх!
В фотографии: Томас Янг, завоевавший золотую медаль в беге на 100 метров на летних Паралимпийских играх 2020 года в Токио, Япония.
Всего через неделю мы станем 👁️ свидетелями Паралимпийских игр 2024 года в Париже!
Как показывают исследования, успех Паралимпийских игр способствует повышению осведомленности общества и улучшению 🤝 понимания людей с ограниченными возможностями. По данным опросов, 70 процентов жителей Великобритании считают, что Паралимпийские игры 2012 года в Лондоне положительно повлияли на отношение к людям с ограниченными возможностями.
А знаете ли вы, что сборная команда Великобритании #ParalympicsGB - это международный лидер паралимпийских игр? Спортсмены Великобритании вошли в тройку лидеров по числу медалей уже на 6 Паралимпийских играх подряд. Более того, на Паралимпийских играх в Токио три года назад паралимпийцы Великобритании установили 🚀рекорд, завоевав медали в 18 видах спорта!
Но несмотря на то, что игры еще не начались, уже достигнуто многое. В этом году в сборной #ParalympicsGB самая высокая доля женщин-спортсменок - 46 процентов из 215 участников❗ Это самая высокая доля женщин-спортсменок в сборной Великобритании за всю историю, и даже большее гендерное равенство, чем в Токио-2020.
Будете ли вы следить за Паралимпийскими играми❓
#ParalympicsGB | #Paralympics | #Paris2024
Dichiarazione dell’Ambasciata della Repubblica di Belarus in Italia
L’Ambasciata della Repubblica di Belarus in Italia esprime preoccupazione per la recente dichiarazione congiunta dei Ministri Tajani e Abodi, riguardo al disaccordo dell’Italia con il pieno ripristino dell’adesione dei comitati paralimpici di Bielorussia e Russia e alla partecipazione degli atleti con simboli nazionali ai Giochi Olimpici di Milano.
Si sottolinea che la politicizzazione dello sport, soprattutto durante eventi internazionali di rilievo, è inaccettabile. La parte bielorussa auspica che non vengano intraprese azioni discriminatorie verso atleti o delegazioni, e che tutte le procedure, inclusi visti e formalità, rispettino le decisioni del Comitato Paralimpico Internazionale.
L’Ambasciata invita tutti a rispettare i principi di legalità e inclusività del movimento olimpico, evitando di usare lo sport per scopi politici.
#Bielorussia#SportSenzaPolitica#Paralympics#Inclusività
https://www.marx21.it/internazionale/dichiarazione-dell-ambasciata-della-repubblica-di-belarus-nella-repubblica-italiana/