Функция 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
#InternationalProject
Международный проект «Ферганская археолого-этнографическая экспедиция – 2025»
🔹На Международном туристическом форуме в Ташкенте представили международный проект «Ферганская археолого-этнографическая экспедиция – 2025», над которым работают исследователи из Узбекистана🇺🇿 и России🇷🇺, в частности сотрудники НИИ развития туризма С.Соатова и Е.Гордеева, а также директор НЦО «Большой Алтай» АлтГУ Ю.Лысенко.
🔹Экспедиция сосредоточена на изучении этнотуризма и поиске новых объектов культурного наследия в Ферганской и Андижанской областях.
🔹Команде удалось разработать новые туристические маршруты, охватывающие 7 районов Ферганской и 8 районов Андижанской областей, а также изучить около 18 уникальных этнокультурных объектов.
Международный проект
«Искусство в спорте»
2014-2025 💥💥💥
#ArtInSport
#LiubovBarykina
#InternationalProject
15 Стран
22 Региона РФ
13 Художественных музеев
International Project
"Art in Sport"
2014-2025 💥💥💥
15 Countries
22 Regions of the
Russian Federation
13 Art Museums
💫Руководитель НОЦ алтаистики и тюркологии «Большой Алтай» АлтГУ Юлия Лысенко поприветствовала участников Международного туристского форума «Туризм, наука и образование: взгляд в будущее», прошедшего в рамках 30-й Ташкентской международной туристической ярмарки «Туризм на Шелковом пути».
#БольшойАлтай#алтгу#Узбекистан#Ташкент#InternationalProject
Видео мастер-класса
«Искусство в спорте»
В Дубай ОАЭ 🇦🇪
Было жарко во всех
Смыслах этого слова
🔥🔥🔥
Танцевали
все тренеры 🤟🤟🤟
27.09.2025
Video of the master class
"Art in Sports" in Dubai, UAE
It was hot in every sense
Of the word 🔥🔥🔥
All the coaches were dancing 🤟🤟🤟
#ArtInSport
#Dubai
#UAE🇦🇪
#LiubovBarykina
#InternationalProject
International Project
"Art in Sports" in Turkey,
Antalya 2025 🇹🇷
Dance Steps with Ribbon
#LiubovBarykina
#Antalya
#InternationalProject
#RozaWinter
#RhythmicGymnastics
08.11.25
International Project
"Art in Sport"
in Schwerte🇩🇪
Germany
28.06.25
Online and Offline
Master Classes and
individual trainings
are available 📞🤝
#ArtInSport
#InternationalProject
#LiubovBarykina
#Choreographer
#Artist
#Coach
#RhythmicGymnastics
International Project
"Art in Sports"
in Turkey,
Antalya 🇹🇷 2025
#LiubovBarykina
#Antalyal🇹🇷
#InternationalProject
#RozaWinter
#RhythmicGymnastics
08.11.25
Дети-это счастье!
#МастерКласс
международного
проекта
«Искусство в спорте»
#Турция
#Анталия🌴
28.09.24 🇹🇷❤️
#LiubovBarykina
#ArtInSport
#InternationalProject
Online and Offline
Choreographies and
individual trainings are available!
All over the world 📞💃🏽👍
#ArtInSport
#InternationalProject
#LiubovBarykina
#Choreographer
#Artist
#Coach
#Academician
#RhythmicGymnastics