Функция 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
News: #Southwest State president resigns after federal forces seize #Baidoa
Somalia’s Southwest State President, Abdiaziz Hassan Mohamed Laftagareen announced his resignation on Monday, hours after federal troops and allied armed groups entered Baidoa following clashes that left at least two people dead and 25 others wounded.
In a brief statement posted on his official Facebook page, Laftagareen said the resignation was effective immediately, without providing further details.
His whereabouts remain unclear.
Earlier in the day, forces of the Somali National Armed Forces, backed by allied militias, moved into Baidoa and reportedly took control of key installations, including the police station and major business centers, encountering limited resistance.
Regional forces loyal to Laftagareen were said to have withdrawn from parts of the city.
According to local reports, strategic sites including the airport and the.......
https://x.com/addisstandard/status/2038849050108416203?s=20
#Somalian President Mohamud unharmed in mortar attack
Somalian President Hassan Sheikh Mohamud was unharmed after he and his entourage were subjected to a barrage of mortar shells in the southern city of #Baidoa on Friday.
The shells were fired shortly after the president alighted from his plane and began greeting army units, police and government officials said.
https://www.bloomberg.com/news/articles/2026-04-04/somalian-president-mohamud-unharmed-in-mortar-attack
#Somali forces reopen key Mogadishu–Baidoa route as defense minister signals intensified offensive
Minister of Defense of the Federal Government of Somalia, Ahmed Moalim Fiqi, has announced that government forces have fully secured the strategic road linking #Mogadishu and #Baidoa, a major breakthrough in ongoing military operations.
In an interview with national television, the Minister said the Somali National Army successfully cleared and reopened the route earlier this week after swiftly dislodging militant fighters from key positions.
“The road is now safe for civilian movement, restoring vital connectivity between the capital and the Bay region”, He said.
He stated that the armed forces have regained strong operational capacity and are now able to conduct precise offensives in remaining militant-held areas. Recent operations include preemptive strikes and a surprise attack on....
https://www.facebook.com/AddisstandardEng/posts/pfbid02MvxWBnGmjHxoqi12Tii5cZDWqSXj1gLp14Nf3vXPFcpnhRKdMiLn6ho3nLc3pPNul
News: #Somali Federal forces seize key installations in #Baidoa as political tensions between #Mogadishu, #Southwest_State escalate
Somali National Armed Forces (SNAF), accompanied by allied militias, took control of the town’s police station, major business centers, and key installations after entering Baidoa without major clashes.
Earlier on Monday, President Abdiaziz Hassan Mohamed warned against federal military intervention in the region.
“Any attack on Baidoa or South West State territory will be met with an appropriately severe military response,” he said in a statement posted on his official X account on March 30. “I urge President Hassan Sheikh to use the remainder of his short time in office to not spill Somali blood but help find a solution for a credible election process.”
https://addisstandard.com/?p=56188
Federal government suspends #Mogadishu–#Baidoa flights after Southwest halts cooperation
#Somalia’s federal government on Tuesday suspended civilian flights between Mogadishu and Baidoa, in a move widely seen as increasing pressure on #Southwest State authorities amid a deepening political standoff.
Local sources said that as of Tuesday morning, commercial passenger aircrafts were unable to land in Baidoa following the decision. Only #United_Nations and cargo flights were being permitted to operate during the suspension.
Officials in Southwest State condemned the measure.
“The Somali government has stopped passenger planes from arriving in Baidoa. People entered the airport at 6:00 this morning, and they have not been allowed to departure yet,” said Ilyas Ali Nur, a senior official in the regional administration.
Sources indicated that flight clearances had been.....
https://www.hiiraan.com/news4/2026/Mar/204688/federal_government_suspends_mogadishubaidoa_flights_after_southwest_halts_cooperation.aspx