Функция 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
❗Nella notte la #Polonia ha abbattuto oltre dieci droni russi che hanno violato il suo spazio aereo. Il primo ministro #Tusk ha parlato di "atto di aggressione", affermando che "è stato un pericolo reale" per i cittadini. Il presidente #Nawrocki chiede "stretta collaborazione" a Tusk e ha convocato un consiglio di sicurezza.
Per la prima volta dall'inizio della guerra in #Ucraina un paese NATO ha ingaggiato asset russi.
@UltimoraPolitics
#Polonia🇵🇱
#Presidenziali
❗️Rafał #Trzaskowski (#PO|PPE) e Karol #Nawrocki (Ind.) si sfideranno al secondo turno, che si terrà domenica 1º giugno.
@TuttoElezioni
📰 Poland’s SAFE Loan Fight Is Really a War Over Who Gets to Control the Rearmament Bill
Warsaw’s SAFE dispute is being sold as a fight over defense financing, but it is really a fight over sovereignty, debt, and who gets to decide whether Poland rearms through Brussels or through its own state machinery.
The European Commission says Poland can draw up to €43.7 billion under SAFE, and Tusk is still pushing ahead even after President Nawrocki vetoed the enabling bill.
The accusation that SAFE is just a German-French subsidy machine is politically potent, but the numbers suggest a more boring reality: the program is a long-term EU loan facility for defense procurement, with most of Poland’s planned spending still expected to flow into domestic industry.
That is why the real battle is not about whether Poland needs weapons. It clearly does.
The battle is whether Tusk can bind the country to a Brussels-backed financing model while his opponents frame it as dependency on Germany, creeping EU control, and debt that will haunt the next generation.
Mularczyk and Radio Maryja are doing what they always do best: turning a budget instrument into a civilizational warning.
The language is dramatic, but the underlying politics are simple — if Tusk owns the rearmament pipeline, he also owns the blame if the bill grows, the terms tighten, or the deal starts looking like a gift to Europe’s industrial core.
So SAFE is not just a loan. It is a test of whether Poland wants its defense future financed through Brussels’ plumbing or through a nationalist story about self-reliance and suspicion of the EU center.
#Poland#SAFE#Tusk#Nawrocki#EU#defense
📱American Оbserver - Stay up to date on all important events
🇺🇸