Функция 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
https://x.com/SavinoBalzano/status/2029135535571157083?s=20
È stata davvero una sorpresa: pare che #Parenzo sia diventato più trumpiano di #Trump. Eppure lo ricordo, insieme ad altri, tutto trafelato e spaventato per l’instabilità internazionale che il presidente USA provocava nel mondo. A breve lo vedremo ballare YMCA dei Village People con il cappellino MAGA.
Si sa: quando qualcuno aiuta Israele a “esportare la democrazia”, a salvare le donne dal velo (magari senza farle diventare adulte), diventa sempre un eroe.
Altro duro scontro ieri ai microfoni de #LaZanzara e di #Cruciani.
https://x.com/SavinoBalzano/status/1933896087649030183?t=2x91kd9LvA0Q5PWYvlfmfg&s=19
Il mio confronto civile e contenuto di ieri, con Parenzo e Cruciani a #LaZanzara.
Composto, a parte qualche lieve sbavatura: ammetto di averlo definito cassamortaro della propaganda e qualche altra cosetta...
#TerzaGuerraMondiale#Iran#Israele
Ieri mi è toccato affrontarne tre: Giuseppe Cruciani, David Parenzo e Andrea Ruggieri.
La prossima volta saranno in 4?
Sono rimasti solo loro a difendere Israele e Netanyahu.
La Zanzara - Radio 24 Radio 24
#GiuseppeCruciani#DavidParenzo#lazanzara
https://www.youtube.com/watch?v=W-4FE9CZ0Jc&ab_channel=SavinoBalzano
Scontro furibondo ieri con Giuseppe Cruciani e David Parenzo a La Zanzara, Radio 24.
Eppure mi pare di aver detto cose piuttosto ragionevoli: Netanyahu andrebbe processato per crimini di guerra.
#italia#politica#informazione#attualità #notizie#lazanzara#guerra#pace#Israele#Palestina#Israele
https://www.youtube.com/watch?v=_ZPM333sOxA&ab_channel=SavinoBalzano
Ieri, ospite de La Zanzara, di Giuseppe Cruciani e David Parenzo, ho detto la mia ancora una volta su questa storia dell'antifascismo.
A me questo governo non piace e penso che possa combinare guai grossi, molto grossi: proprio per questo abbiamo bisogno di un'opposizione seria.
Basta pagliacciate.
#politica#radio#lazanzara#radio24#italia#informazione#fascismo#antifascismo
Ieri altra zuffa a La Zanzara - Radio 24 sul tema dell'utero in affitto: io resto radicalmente contrario.
Ho dovuto riportare un pochino d'ordine: in studio Giuseppe Cruciani e David Parenzo, che tanto per cambiare mi ha dato dell'imbecille (e del demente...).
#lazanzara#radio24#italia#politica#informazione#radio#uteroinaffitto#lgbtqia
https://x.com/SavinoBalzano/status/2029497341670007129?s=20
Se l’operazione di #Israele e #StatiUniti (checché ne dica #Trump, l’ordine corretto è questo) la critica #DiBattista, Parenzo si infuria e gli dà dello zozzo.
Se lo fa #Cecchettin, Parenzuccio diventa un dolce cucciolotto: non è d’accordo, ma “rispetta molto”.
Ma guarda un po’. La dittatura del politicamente corretto continua a soffocarci e certi sacerdoti non possono essere minimamente criticati. Nemmeno quando muovono ridicole accuse di sessismo a Carlo #Conti.
E invece no: una cazzata resta una cazzata. Anche se la dice Cecchettin.
Ospite de #LaZanzara e di Cruciani.
Non esiste alcun rischio di ritorno del fascismo: tutte balle. L'opposizione trovi argomenti seri: ci sarebbero eccome!
Ieri ospite a La Zanzara - Radio 24 sono stato mandato "a fanculo" da David Parenzo dopo poco più di 40 secondi: il dato conferma inequivocabilmente come fossi dalla parte della ragione.
Però ci siamo divertiti.
.
.
.
.
.
.
Giuseppe Cruciani David Parenzo #lazanzara#zanzara Radio 24 #radio24#politica#informazione#radio#televisione#fascismo#fascista#antifascismo#antifascista#democrazia#liberta#italia