Функция 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
Максим Соколов: финансовые показатели АВТОВАЗа на протяжении всей новейшей истории остаются в положительной зоне
АВТОВАЗ заявил, что завершил первый квартал 2026 года с положительным результатом по операционной и чистой прибыли. В компании это связывают с ростом продаж, снижением затрат и выполнением финансового плана. Полученную прибыль планируют направить на инвестиционную программу.
#AVAZ
Сайт | Бот | Invest Era
Алиханов: Минпромторг допускает обязательную российскую ОС для отечественных автомобилей
Минпромторг не исключает, что в будущем для автомобилей российского производства могут ввести обязательную предустановку отечественной операционной системы.
По словам Алиханова, речь может идти об «Авроре» или другой платформе, которая будет соответствовать требованиям, в том числе по кибербезопасности.
#AVAZ
Сайт | Бот | Invest Era
Глава Автоваза Максим Соколов в беседе с корреспондентом заявил о доминирующем положении Автоваза, затем сел в Мерседес и уехал.
#AVAZ
Сайт | Бот | Invest Era
Производство автомобилей в России за 11М 2025 года снизилось на 2% г/г, до 707,4 тыс. — Автостат — ТАСС
Читать далее
👉https://smartlab.news/i/173448
#AVAZ
Various Artists — Classical Music of Iran: The Dastgah Systems (Folkways Records, 1991)
#traditional#dastgah#avaz#kamanche#nei#santur#setar#tar#violin#tombak#Iran
Альбом Classical Music of Iran: The Dastgah Systems, впервые изданный лейблом Folkways Records в 1966 году, представляет слушателям один из краеугольных камней иранской музыкальной традиции — систему дастгяхов (دستگاه). Термин дастгях (دستگاه) по значению близок к музыкальному ладу, но, помимо характерного набора звуков, обладает рядом мелодических формул и стремится передать определенное эмоциональное состояние. У каждого дастгяха (دستگاه) существуют свои «диалекты» — авазы (آواز). Например, дастгях Шур (شور) может включать в себя авазы Афшари (افشاری), Дашти (دشتی) или Баяте Тюрк (بیات ترک), каждый из которых меньший по объёму, но обладает более конкретной мелодической направленностью.
В этой подборке собраны работы выдающихся исполнителей классической иранской музыки, ещё совсем юных на момент записи. Композиции демонстрируют как основные дастгяхи, так и их производные авазы.Ахмад Эбади исполняет дастгях Махур (ماهور) на сетаре, а также аваз Дашти (دشتی) на таре. Хусанг Зариф, мастер тара, исполняет дастгях Чахаргях (چهارگاه) и авазы Баят Тюрк (بیات ترک) и Абу Ата (ابوعطا). Сантур Мохаммада Хейдари звучит в авазе Баят Эсфахан (بیات اصفهان), а кеманче Асгара Бахараи — в авазе Афшари. Вокал Хатере Парване в дастгяхе Шур (شور) и авазе Абу Ата (ابوعطا) — почти акапельный, лишь немного обрамлённый инструментальным фоном — звучит особенно пронзительно и заметно выделяется на фоне остальной подборки. Дастгях Хомаюн (همايون) представлен найем Хасана Кассайи. В интерпретации дастгяха Сега (سهگاه) звучат скрипка Али Таджвиди, вокал Хоссейна Фахтеи и томбак Нассера Эффетаха.
🔗Spotify | AppleMusic | Telegram