Функция 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
Западные ресурсы публикуют эту фотографию с подписью "ЧВК Вагнер в Африке".
В комментариях к данным публикациям развернулась целое движение, осуждающее эдакий перфоманс.
Но лично я считаю, что данные головные уборы прекрасное дополнение к снаряжению защищающее от солнечных лучей, насекомых и сохраняющих безопасность личности наших мальчиков.
Вообще, возможно следует использовать данный головной убор в качестве официального форменного в Африканском Корпусе. Что думаете?
#pandaphoto#pandadialog
Сирийский котик во время охраны вверенного ему складского помещения и личного имущества бойцов подразделения.
Котик кстати к военной службе был приспособлен лучше большинства садыков. Был вовремя на всех мероприятиях, исправно выполнял свои обязанности и распоряжения командиров за что регулярно удостаивался похвалы и почёсываний за ушком, а так же был премирован увеличением пищевого довольствия
#pandadialog#pandaphoto
С некоторых пор Кошка Кошковна полюбила отдыхать на [или в] моем старом рюкзаке от MilTec и теперь мне приходится согласовывать график использования своей тары с ее Котейшеством.
В ход, кстати, обычно идёт подлог, манипуляции и шантаж.
Но Кошковна быстро учится и наебывать ее становится все сложнее
#pandadialog#pandaphoto
Вот почему не стоит экономить на баллистических защитных очках и ни в коем случае не покупать паль.
Весьма рекомендую брать очки на линзах которых прописан баллистических стандарт защиты
#pandadialog#pandaphoto
Буду краток, камрады.
В Брянске произошел первый масшутинг который устроила девочка. Четыре ребёнка ранены, один погиб. У неё не было собственного ружья, по этому она завладела оружием своего родителя. Оружие к слову хранилось согласно всем правилам в сейфе. Просто девочка знала где отец хранит ключи. Она без труда разобралась как зарязать оружие. Спрятала его в тубус и пошла в школу.
Это к вопросу о поправках к ЗоО. Я говорил и повторюсь - человек который поставил себе цель сможет найти оружие - найдёт. Ужесточение закона не работает в условиях социальной напряжённости. До тех пор пока существуют социальные проблемы, люди [в том числе дети] которые оказались за бортом социальных групп, без помощи, без внимания со стороны близких и сталкивающиеся с травлей.
До тех пор пока СМИ раздувают ситуацию, давая трибуну и предоставляя извращенное подобие внимания этим людям - они будут появляться.
В их голове это представляется так, что это единственный способ обратить на себя внимание окружающих. Для того чтобы предотвратить подобные ситуации нужно менять не законы, а меняться самим, в лучшую сторону. Не закрывать глаза на проблемы, а решать их и желательно сообща.
#pandadialog#pandaphoto