Функция 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
🔥 The Narrative War They Thought They Won — But Didn’t
BBC’s Latest on Abiy’s Speech:
Another Chapter in the Lost Tigray Information War
The Tigray military war ended in 2022.
The narrative war never stopped.
Once again, the #BBC enters the arena with its article titled “Ethiopia PM hits out at Eritrea over atrocities in Tigray.” And just like during the conflict years, selective framing and timeline reconstruction appear front and center.
#BBC claims Prime Minister Abiy Ahmed:
“admitted for the first time that Eritrean troops had massacred people in Aksum.”
But this is selective memory at work.
⚖️ Quick Reality Breakdown
What BBC Gets Right
✔ Provides basic recap of the 2019 Ethiopia-Eritrea peace deal
✔ Connects Abiy’s speech to current Red Sea tensions and regional instability
✔ Acknowledges atrocities occurred and cites the estimated 600,000 war deaths
🔻Continue Below
@rednile12
Loyal Anglo American propaganda. Just as the #BBC tried to ban the word "genocide", for its staff, in relation to Gaza, now they are trying to ban use of the word "kidnapped" in relation to Venezuelan President Nicolas Maduro and his wife Celia Flores.
💠+888 0BBC 0 BBC
💠 +888 0 222 0 222
👇👇👇
fragment.com/number/88802220222
🌐www.bbc.com
#BBC
2⃣2⃣2⃣
#Phoneword
en.wikipedia.org/wiki/Phoneword
🔹E.161:
en.wikipedia.org/wiki/E.161
You can See these too:
☎️+1-800-MYAPPLE
👇👇👇
www.apple.com/contact
☎️+1-800-SAMSUNG
📞 Phone Numbers of Samsung in more than 40 countries in the world:
👇👇👇
t.ly/5cJZ
📡@Phoneword
Корреспонденты BBC и запуск дронов по российским городам
Корреспонденты BBC приняли участие в запуске украинских дронов по российским городам, что вызвало резкую реакцию в России. По мнению некоторых, это поддержка агрессивных действий, фактическое объявление войны через посредников. В частности, в Конгрессе США прозвучали жёсткие заявления против России, что лишь подлило масла в огонь. В регионах призывают рассмотреть возможность осуждения таких "военкоров" по статье о терроризме, даже заочно.
"Хотелось бы, чтобы эти действия получили правовую оценку в России," — отмечают жители освобождённых территорий.
#BBC#дроны#СВО
Подпишись.
Раскол на вершине Эмирата: расследование Би-Би-Си
Служба BBC Afghan опубликовала свое расследование о внутренних противоречиях в руководстве Исламского Эмирата Афганистан. В его основе утечка аудиозаписи выступления верховного лидера Хайбатуллы Ахундзады, а также более 100 интервью с действующими и бывшими членами движения, дипломатами и экспертами.
По итогам расследования BBC удалось зафиксировать существование двух конкурирующих групп в верхушке талибского руководства:
«Кандагарская группа», полностью лояльная Ахундзаде. Она продвигает модель жесткого исламского правления, максимальной изоляции и концентрации власти в руках религиозного лидера. Решения принимаются без консультаций с кабульскими министрами, а ключевые рычаги безопасности и контроля постепенно переносятся в Кандагар.
«Кабульская группа», сосредоточенная в столице и представленная рядом влиятельных фигур: Сиражуддин Хаккани, Мухаммад Якуб Муджахид и Абдул Гани Барадар. Их позиция прагматичная: сохранение строгого исламского курса, но с экономическим взаимодействием с внешним миром, управляемым государством и частичным смягчением социальной политики, включая вопрос образования женщин.
Интернет как точка разлома: кульминацией конфликта стал приказ Ахундзады полностью отключить интернет и мобильную связь по всей стране осенью 2025 года. По данным BBC, это решение было впервые открыто саботировано: кабульская группа, заручившись поддержкой премьер-министра, распорядилась восстановить связь вопреки прямому указанию верховного лидера.
Источники называют этот шаг беспрецедентным актом неподчинения внутри движения, исторически построенного на абсолютной дисциплине и принципе безусловного подчинения амиру.
Эксперты, опрошенные BBC, указывают: в отличие от ограничений на образование девочек или работу женщин, отключение интернета непосредственно угрожало системе управления и экономическим интересам элит. Интернет стал критически важным инструментом власти, торговли и контроля, и его потеря затронула прежде всего тех, кто реально управляет страной.
Публично представители Эмирата продолжают отрицать раскол, называя происходящее «разногласиями в семье». Однако расследование BBC показывает: внутри системы уже существуют границы терпимости, и впервые за время правления талибов слова перешли в действие.
🔜@openworld_astana
#Афганистан#Талибан#BBC