Функция 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
В Астане жители ЖК пожаловались на многочисленные проблемы здания, построенного BI Group. И, как пишет 24KZ, управляющая компания эти проблемы не решает.
По словам астанчан, дом был заселен в 2022 году. Жители утверждают, что лифт может высадить пассажиров на другом этаже или попросту остановиться.
Также жители пожаловались на промерзшие стены на балконах, запах канализации, протекающий потолок, затопленную шахту лифты.
В управляющей компании BI Clients Service проблемы отрицать не стали, но заявили, что они носят не массовый, а точечный характер.
Чтож, главное, чтобы эти точки не стали горячими. Ведь, по словам жителей, им своими силами пришлось тушить пожар в паркинге. Система оповещения не сработала, а в пожарном рукаве не оказалось воды.
Регионы: #астана#bigroup#строительство#жк#айдынрахимбаев
t.me/halyqpress
Очередной долгострой? Когда закончится реконструкция алматинского театра им. Ауэзова?
Депутат Сергей Пономарев поднял вопрос о реконструкции театра им. Ауэзова в Алматы. Акимат пару лет назад анонсировал обновление здания. Подрядчик Bi group приступил к работе, но позже заморозил стройку. Депутат утверждает, что требуемых для реконструкции 45 млрд тенге в бюджете нет и якобы объект может стать очередным городским долгостроем.
В Минкульте поспешили прокомментировать заявление Пономарева. В ведомстве уверили, что работы по реконструкции объекта не приостановлены. По данным ведомства, проект ожидает начала нового финансового года и в установленном порядке получит необходимые для продолжения работ средства.
Также в Минкульте пообещали, что реконструкция театра будет завершена в полном объеме и с соблюдением всех требований к сохранению его исторической и культурной ценности.
Видео reporterkz
Регионы: #алматы#театримауэзова#минкуль#Bigroup#долгострой
t.me/halyqpress