Функция 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
🇺🇸🇷🇺В США арестован гражданин России, пытавшийся вывезти из страны два самолета
Сергей Нечаев, гражданин России и США, был арестован в США по обвинению в незаконной попытке экспорта двух самолетов Cessna в Россию. Согласно обвинительному заключению, о котором сообщил минюст США, в период с 3 марта 2023 года по 24 марта 2023 года Нечаев участвовал в схеме, пытаясь контрабандой вывезти два самолета Cessna из США в Россию, переправив их через Армению.
Нечаев попытался экспортировать Cessna 172K 1968 года и Cessna 1973 года общей стоимостью около 170 000 долларов США в некую российскую летную школу без разрешения Министерства торговли. Чтобы скрыть истинного конечного пользователя и пункт назначения самолета, Нечаев заявил, что конечный пользователь и пункт назначения находятся в Армении.
Нечаев обвиняется в попытке экспорта контролируемых товаров без лицензии, контрабанде товаров и предоставлении ложной информации в документах по экспорт. В случае признания виновным Нечаеву грозит максимальное наказание в виде 20 лет лишения свободы за незаконную попытку экспорта; до 10 лет лишения свободы за контрабанду; и до пяти лет лишения свободы за фальсификацию экспортной информации.
#Cessna
Подписывайтесь на Sanctions Lists
Cessna Citation III разбилась в Мексике
📌Погибли не менее семи человек, сообщают местные СМИ.
⏺Джет Cessna Citation III потерпел крушение недалеко от аэропорта Толука. Он влетел в автомастерскую.
Лёгкое небо
#aircrash#Cessna#aviation
Цессна 172 разбилась на аэродроме Новинки в
Московской области
Двигатель начал хлопать, пилоты развернули самолёт, но, к сожалению, не дотянули до полосы
По предварительной информации пилоты живы, один получил травму
Лёгкое небо
#aviation#Россия#aircrash#Cessna
✈️В Южном Судане разбилась Cessna
📌В Южном Судане потерпел крушение пассажирский самолёт Cessna. Погибли 14 человек, находившихся на борту, включая пилота
🔵По предварительной информации, причиной катастрофы стала плохая видимость из-за неблагоприятных погодных условий
⬅️Причины трагедии уточняются
Лёгкое небо
#aviation#news#aircrash#ЮжныйСудан#Cessna
На второй публикации #Вьетнампочетвергам или #Запахнапалма Cessna O-2A Skymaster . Эти маленькие самолётики оказались весьма полезны в противопартизанских конфликтах. 😏
#Вьетнам#ввссша#cessna#skymaster#авиация#проавиацию
Дорогие друзья!
⚡️ Смотрите очередное новое ЭКСКЛЮЗИВНОЕ АВТОРСКОЕ ВИДЕО 💎ПАВЛА ГЛОБЫ с прогнозом по:
🔸️ АВИАКАТАСТРОФАМ: АН-22, CESSNA;
🔸️ ИГНАЛИНСКАЯ АЭС;
🔸️ ЧЕБОКСАРЫ, САРАТОВ, БЕЛГОРОД, РОСТОВ НА ДОНУ
🔷️ В полной версии по подписке или по однократному донату на платформе boosty: https://boosty.to/globainstitut/posts/002c4622-3c5a-4720-8c48-0864b8d1c104?share=post_link
🔷️ а сокращенную версию видео на канале youtube: https://youtu.be/saXFpln1MCM?si=BWN5H6vws5VRiq8_
🔷️ или на канале Дзен: https://dzen.ru/video/watch/694bd5ce100b8e63cbbfde8c?share_to=link
#ПавелГлоба#АвестийскаяАстрология#БПЛА#Чебоксары#Саратов#Белгород#РостовнаДону#авария#АЭС#ИгналинскаяАЭС#АН22#Cessna#авиакатастрофа#globainstitut#прогноз
Дорогие друзья!
⚡️ Смотрите еще одно новое ЭКСКЛЮЗИВНОЕ АВТОРСКОЕ ВИДЕО💎ПАВЛА ГЛОБЫ с прогнозом:
🔸️ АВИАКАТАСТРОФЫ: АН-22, CESSNA;
🔸️ ИГНАЛИНСКАЯ АЭС;
🔸️ ЧЕБОКСАРЫ, САРАТОВ, БЕЛГОРОД, РОСТОВ НА ДОНУ
🔷️ В полной версии по подписке или по однократному донату на платформе boosty: https://boosty.to/globainstitut/posts/002c4622-3c5a-4720-8c48-0864b8d1c104?share=post_link
#ПавелГлоба#АвестийскаяАстрология#БПЛА#Чебоксары#Саратов#Белгород#РостовнаДону#авария#АЭС#ИгналинскаяАЭС#АН22#Cessna#авиакатастрофа#globainstitut#прогноз
🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣🟣
📌Дорогие подписчики, мы продолжаем модернизацию канала, поэтому сегодня собрали для вас глоссарий с основными хэштегами канала
Основные:
#aviation
#news
#LN_EDU
#airport
Страны:
#Россия
#Белоруссия
Остальные:
#vibe
#metar
#S7TRAINING
ВС:
#A320
#B777
#A350
#B777X
#B737
#A380
#А330
#МС21
#Ту214
#Су57
#ssj100
#B737
#B787
#drone
#аэростаты
Системы:
#Leonardo
#FFS
Компании:
#Airbus
#Boeing
#Embraer
#Cessna
#ВертолётыРоссии
#ОАК
#Росавиация
#Ростех
#winwing#winctrl
#flightradar24#fr24
#Авиатор
Авиакомпании:
#Аэрофлот
#S7#S7Airlines
#ЮТэйр
#Белавиа
#Azur
#Ямал
Аэропорты:
#Шереметьево#Sheremetyevo
#Домодедово
#Внуково
#Жуковский
#Пулково
События:
#Emergency
#деньрождения
#ковёр
#sqw7700
#MayDay
#quiz
#spotting#споттинг
#конкурс
#DubaiAirShow2025#DAS25
Профессии:
#бортпроводники
#crew
#FlightAttendant
🔵Мы непрерывно работаем над тем, чтобы каждый день радовать вас качественным контентом и удобной навигацией по каналу
⬅️Если у вас есть идеи по новым рубрикам на канале - пишите их в комментарии. Кто знает, возможно именно ваша идея будет воплощена в жизнь 👀
Лёгкое небо