Функция 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
📍 Road from Surum to Tashaul
📅 Video recorded on February 26
The village of Surum (Sur-um) is located in Tashkent Region, bordering the Sergeli and Yangihayot districts of Tashkent (about 9 km from the center of Sergeli).
The video shows thick dust from operating crushers. According to local residents, this situation has been ongoing for a long time.
Residents complain about:
▪️ constant loud noise;
▪️ dense dust in the air;
▪️ difficulty breathing and worsening living conditions.
The community asks authorities to pay attention to the environmental situation and take measures to reduce dust and noise levels.
❗️ The situation requires inspection by responsible agencies and an assessment of its impact on the environment and public health.
#Environment#TashkentRegion#Dust#Noise#EnvironmentalIssue
☘️ Follow the latest environmental news on @ekologuz. Send your suggestions and feedback via @eklguz_bot!
Meeting with animal capture services of Tashkent region
Representatives of NGO «HAYOT», together with the Head of the Security Service of the Ministry of Internal Affairs of the Republic of Uzbekistan, Lieutenant Colonel Rovshan Pirimkulov, held a meeting with animal capture services from Yangiyul, Angren, Akhangaran, Buka, Pskent, Nurafshan, Bekabad, Urta Chirchik, Kibray, Bostanlyk, and Parkent.
Key conclusions:
✅ Animal capture activities must be carried out strictly within the law and in compliance with humane standards; cruel methods are unacceptable.
✅ Violations will receive legal assessment by competent authorities.
✅ Cat capture has been suspended — the “Mushukkent” project (sterilization and humane population control) continues.
✅ Issues related to salaries, equipment, and inventory for humane capture were discussed.
✅ Public awareness activities are planned, along with the possible allocation of land for state animal shelters.
💡 The meeting was held in a constructive dialogue format and may become a starting point for real changes in the field of animal welfare.
#NNOHAYOT#HumaneCapture#Mushukkent#TashkentRegion#AnimalProtection
☘️Read the latest environmental news on the @ekologuz page. Follow us and send your suggestions and wishes via @eklguz_bot
Instagram | Facebook | Twitter | Sayt | Youtube.
Uzbekistan has opened a criminal case against penitentiary system officers after a man previously convicted of pedophilia escaped from a colony and assaulted a third-grade girl in the Akhangaran district. The National Agency for Social Protection is overseeing the case.
https://yep.uz/en/2025/10/uzbekistan-investigates-police-actions-after-convicted-pedophile-escape/
#Uzbekistan#Akhangaran#TashkentRegion#InteriorMinistry#Investigation#SocialProtection#Law