Функция 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
Легендарное возвращение Deep Purple в Казахстан — самое ожидаемое рок-событие года!
Стань частью истории — встреться с легендами!
22 апреля 2026 года в Алматы мы будем рады приветствовать культовую британскую рок-группу Deep Purple @deeppurple_official с живым концертом на сцене Almaty Arena.
Билеты в продаже на Freedom Ticketon
Промоутер: maximumconcerts
Локальный партнер: Freedom Holding
#deeppurple#deeppurplealmaty#maximumconcerts
Билеты от организатора теперь доступны для покупки из России:
https://deeppurplealmaty.kz/russ
Первый раз увидел эту редкую запись. Самый первый состав великих Пёплов, 1968 год, первое появление на ТВ с кавером (да, #DeepPurple не брезговал в начале карьеры каверами!) битловского хита "Help".
Род Эванс — вокал
Джон Лорд — клавишные, а также вокал и оркестровые аранжировки
Ричи Блэкмор — гитара
Ник Симпер — бас-гитара и бэк-вокал
Иэн Пейс — ударные.
Состав менялся, а Блэкмор и Лорд были кажется всегда, вокалист сменился на Йена Гиллана, которого я, наверняка не только я, считаю лучшим Пёпловским вокалистом, да и одним из лучших хард-роковых голосов за всю историю.
Все такие молодые, виртуоз #Блэкмор с отрешенным взглядом и лицом Роуэна Аткинсона, #Лорд со своими усищами, которые он пронес через года, всё выглядит очень трогательно и ностальгически.
Может с них списали Котёночкин с Курляндским рок-группу, которая горланила в "Ну-погоди!" песню про попа и собаку?
Интересный факт, #Гиллан приезжал в #Нальчик и дал там два концерта на стадионе Спартак в 1990 году. Представьте себе, мировая рок-звезда в провинциальном Нальчике на маленьком стадионе, фурор! Я к сожалению там не был, мал был, но "старшаки" рассказывали.
Стоит отметить, что в Нальчике какая-то непропорционально большая фан база у Пёплов, их очень любили всегда, когда кругом уже царствовали другие музыкальные жанры. Видимо попал Deep Purple в какой-то нальчикский нерв.
Интересно, остался ли большой фанат Пёплов Дмитрий Анатольевич их поклонником, учитывая англо-саксонство музыкантов?
#ИсторииNegoro
🎸 Deep Purple - главный рок-тряс этого года
Британские титаны, зажгут сцену Алматы! Это не просто концерт, это НАСТОЯЩЕЕ РОК-ПУТЕШЕСТВИЕ, которые знает весь мир - от "Smoke on the Water" до "Highway Star"
P.s. Это твой шанс услышать вживую тех, кто писал правила рока. Событие, о котором будут говорить годами!
🗓 22 АПРЕЛЯ 2026
📍 Almaty Arena, Алматы, Казахстан
🎫Билеты уже в продаже
Реклама. ИП Рудько Ульяна Валерьевна. ИНН 225201263021. Erid 2VtzqupLiy2
#АлмаАты
#апрель
#легендырока
#хардрок
#ДипПерпл
#deeppurple
#deeppurplealmaty
#Almatyarena