Функция 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
🇪🇸 #Spagna – Il governo ha approvato un decreto per regolarizzare circa 500.000 migranti (la maggior parte latinoamericani) che risiedono nel Paese da almeno cinque mesi e che hanno presentato domanda di protezione internazionale. La misura riguarderà anche…
🇪🇸#Spagna – Il governo ha approvato un decreto per regolarizzare circa 500.000 migranti (la maggior parte latinoamericani) che risiedono nel Paese da almeno cinque mesi e che hanno presentato domanda di protezione internazionale. La misura riguarderà anche i loro figli. I richiedenti dovranno dimostrare di non avere precedenti penali.
@UltimoraPolitics24
🇪🇸#Spagna – Il governo annuncia che da gennaio 2026 sarà possibile pagare un abbonamento unico per autobus a lunga percorrenza, treni pendolari e treni a media percorrenza: costerà 60 euro al mese, o 30 euro per gli under-26. Sarà valido su tutto il territorio nazionale.
@UltimoraPolitics24
🇪🇸#Spagna — Urne chiuse per le elezioni generali. Divulgati gli intentional poll (sondaggi condotti durante il divieto di diffusione ma prima del voto di oggi): 150 seggi ai popolari. La maggioranza posta al Congresso è di 176. Exit poll e primi dati ufficiali dalle 21
@UltimoraPolitics
#Spagna: La Casa Bianca annuncia che la Spagna ha accettato di collaborare militarmente con gli Stati Uniti.
Nei giorni scorsi il Governo spagnolo ha negato l’uso delle basi agli aerei statunitensi.
#Spagna
Un approfondimento sulla nuova “Ley de deporte” spagnola, con una particolare attenzione all’intreccio tra lo sport e tematiche sociali come la disparità di genere e la disabilità
https://telegra.ph/La-nuova-Ley-de-deporte-spagnola-12-24-3
👉@giurisprudentia
🇪🇸 Elezioni in #Spagna, dati del Ministero dell'Interno (100% scrutinato)
Partido Popular 136 seggi
PSOE 122
Vox 33
Sumar 31
Esquerra Republicana de Catalunya 7
Junts x Catalunya 7
Euskal Herria Bildu 6
Partido Nacionalista Vasco 5
Bloque Nacionalista Gallego 1
Coalición Canaria 1
Union del Pueblo Navarro 1
PP+Vox 169
PSOE+Sumar 153
Maggioranza assoluta: 176 su 350
Per la diretta delle elezioni spagnole seguiteci su Twitter: https://twitter.com/you_trend
🔴🇪🇸 Elezioni in #Spagna - intention poll Sigmados per RTVE, stima seggi:
PP 145-150
PSOE 113-118
Sumar 28-31
Vox 24-27
Soglia della maggioranza assoluta: 176 su 350
Secondo questi dati, al momento non è chiaro se PP e Vox avranno i numeri sufficienti per raggiungere la maggioranza assoluta dei seggi, poiché la loro forchetta oscilla tra 169 e 177 seggi
Diffuso dalla Sala Stampa vaticana il logo del Viaggio Apostolico che Papa #LeoneXIV compirà in #Spagna dal 6 al 12 giugno. L'immagine è strutturata come un cerchio aperto in movimento, formato da figure umane unite tra loro e orientate verso l’alto.
Questa composizione esprime comunità, incontro e sostegno reciproco: non si tratta solo di stare insieme, ma di camminare uniti verso una meta comune. La Vergine Maria, posta al centro, rappresenta il cuore del movimento: presenza materna che accoglie e orienta gli sguardi verso Dio, segno di unità e di speranza per tutto il popolo.
Il motto scelto, “Alzad la mirada” (Gv 4,35), è un invito a sollevare lo sguardo oltre le preoccupazioni quotidiane per riscoprire la presenza di Dio e aprirsi agli altri. È un invito alla speranza e alla contemplazione, che esorta a non chiudersi in sé stessi ma a ritrovare l’unità, la bellezza e la carità come segni concreti di una vita condivisa.
In questo gesto di “alzare lo sguardo” si esprime anche l’atteggiamento con cui la Chiesa in Spagna accoglie la visita del Santo Padre: con il cuore aperto e pronto a camminare insieme.
Questa mattina, Papa #LeoneXIV ha ricevuto in udienza, nel Palazzo Apostolico Vaticano, Re Felipe VI e la Regina Letizia di #Spagna. I Reali si sono successivamente incontrati col Cardinale Pietro Parolin, Segretario di Stato di Sua Santità, accompagnato da mons. Paul Richard Gallagher, Segretario per i Rapporti con gli Stati e le Organizzazioni Internazionali.
"Nel corso dei cordiali colloqui in Segreteria di Stato - si apprende dalla Sala Stampa vaticana - si è espresso compiacimento per le buone relazioni tra la Santa Sede e la Spagna, che avranno un momento significativo nel prossimo Viaggio Apostolico del Santo Padre. In tale contesto, si è fatto riferimento ad alcune questioni di attualità che riguardano la situazione del Paese e la missione della Chiesa nella società. Infine, ci si è soffermati su alcuni temi di carattere regionale ed internazionale, rilevando l’importanza di un impegno costante a sostegno della pace e del rafforzamento dei principi e dei valori che stanno alla base della convivenza internazionale".
Lasciato il Vaticano, i Reali di Spagna hanno raggiunto la basilica papale di Santa Maria Maggiore per la presa di possesso, da parte del Re, della carica di Protocanonico del Capitolo Liberiano.