Функция 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
#CemilBayik, co-presidente del Consiglio Esecutivo del #KCK: "Senza il sostegno del #KDP, la presenza della #Turchia in zona non può durare più di 24 ore". L'esercito turco porta avanti operazioni contro il #PKK in #Iraq del nord con il sostegno delle forze locali.
Elezioni in #Iraq, l'affluenza al 56%, la coalizione guidata dal Primo Ministro #Sudani porta a casa 50 seggi. Coalizione inevitabile. Nella regione del #Kurdistan il primo partito è il #KDP, guidato da #Barzani.
Нестандартное фото. Так выглядит попытка США через ДПК Барзани создать в Сирии подконтрольные Курдскому национальному союзу (#ENKS) подразделения Peşmerge ROJ.
#Рожава#ДПК#Rojava#KDP#Барзани
#MesudBarzani, leader del partito curdo #KDP in #Iraq, incontra #MazlumKobani, il comandante generale delle #SDF in #Rojava#Siria e #RohilatEfrin, la comandante delle #YPJ; "E' necessario che i partiti curdi in Siria possano determinare il loro futuro senza interventi esterni".
📝📋Реакция ПСК на заявление Чавушоглу
Патриотический союз Курдистана (ПСК) сделал официальное заявление по поводу высказываний министра иностранных дел Турции Мевлюта Чавушоглу.
Глава пресс-службы ПСК Шадман Меле Хесен отметил: «Чавушоглу заявил, что Аль-Сулеймания находится под контролем РПК и что РПК планирует взять под контроль Эрбиль. Что ж, после этого заявления мы четко понимаем, что в ходе своего визита в Анкару Нечирван Барзани потребовал ускорить захват южного Курдистана».
Источник: ИА #BaşurGündemi
ᅠ
#PKK#YNK#Başur#KuzeyIrak#TürkPolitikası#KDP#Barzani#Talabani
Барзанисты встали на тропу войны...
Минувшая неделя ознаменовалась беспрецедентным для медиа-пространства выступлением Демократической партии Курдистана (ДПК) и представителей Регионального правительства Курдистана против движения «апочистов» в лице Союза общин Курдистана (Koma Civakên Kurdistan – KCK) и Рабочей партии Курдистана (РПК). Нельзя сказать, что ситуация стала неожиданностью для Кандиля, и, в первую очередь, это связано с тем, что в «грязных политических» технологиях всегда применяется принцип «лучшая защита – нападение». А РПК давно не питает иллюзий насчет того, каково истинное отношение клана Барзани к партии, поэтому всегда готова принять удар.
Какова истинная подоплека начатой барзанистами кампании против курдского движения? Что и кто стоит за хаотичными информационными атаками ДПК? К чему они приведут в ближайшем будущем? И, наконец, какой возможный ответ приготовит РПК для главной протурецкой политической силы внутри курдского мира?
На все эти вопросы авторский коллектив канала Jiyana_Nû постарается ответить в еженедельной редакционной статье, предложенной Вашему вниманию >>>
#Barzani#Talabani#PKK#KCK#HPG#KDP#PUK#ДПК#ПСК#Горан#Erbil#Duhok#Suleymaniyah#Qandil#BashureKurdistan#Başur#Parastin#MİT#Asayiş#ПротестыБашур
🆔@jiyana_nu
Всем известно, что дружба – это всегда равноправные долговременные отношения. Товарищество – это отношения, основанные на общности интересов и идейных взглядов. Но это в жизни и в политической борьбе.
В дипломатии же, а в военной дипломатии, особенно, не может быть ни дружбы, ни товарищества. Есть лишь совпадение интересов; оно может быть временным, либо вариант второй - когда слабый игрок следует в фарватере интересов игрока более сильного.
О приоритетах внешней политике США в Большом Курдистане, попытках «слива» Рабочей партии Курдистана, усилении роли Турции и кризисе власти в северо-иракской курдской автономии в еженедельной редакционной статье канала @jiyana_nu.
#BaşureKürdistan#PKK#HPG#Qandil#Erbil#Duhok#AsSuleymaniyah#Rojava#Barzani#Talabani#KDP#PUK#Goran#SyrianWar#StopISIS#ДПК#ПСК#РПК#Барзани#Талабани#Рожава#USPolicy#MiddleEast