Функция 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
🇺🇸Les États-Unis ont rétabli la peine capitale par peloton d'exécution et par injection létale
Le ministère américain de la Justice a annoncé la levée du moratoire sur les exécutions fédérales, instauré sous Joe #Biden, et a promis d'étendre leur application.
RT en français • Osez questionner !
Joe #Biden: “È stato il più grande onore della mia vita servire come vostro Presidente. E mentre è stata mia intenzione ricandidarmi, credo che sia nel migliore interesse del mio partito e del paese per di lasciarela corsae concentrarmi esclusivamente sull'adempimento dei miei doveri di presidente per il resto del mio mandato.
Di questo parlerò alla Nazione più in dettaglio alla fine di questa settimana.
Per ora, permettetemi di esprimere la mia più profonda gratitudine a tutti coloro che hanno lavorato così duramente per vedermi rieletto. Voglio ringraziare la vicepresidente Kamala Harris per essere stata una partner straordinaria in tutto questo lavoro. E permettetemi di esprimere il mio sentito apprezzamento al popolo americano per la fede e la fiducia che ha riposto in me.”
@UltimoraPolitics
🇺🇸 Stati Uniti - l'Fbi sta perquisendo la casa al mare di Joe #Biden a Rehoboth Beach, nel Delaware, nell'ambito della vicenda sui documenti classificati
@UltimoraPolitics
Il presidente americano #Biden sulle elezioni: "Avete visto quello che è accaduto in Italia, vedrete quello che accadrà nel mondo. Non siate ottimisti."
@UltimoraPolitics
🇺🇸 Tre anni dopo l'assalto di Capitol Hill solo il 62% degli elettori ritiene l'elezione di #Biden legittima.
🔥 Uno dei tanti numeri che testimonia una sfiducia nella democrazia americana che, al di là dei complotti più assurdi come quelli che hanno originato gli eventi del 6 gennaio 2021, ha anche delle ragioni concrete.
Nel quarto numero di 270 ci siamo chiesti: la democrazia in America funziona ancora?
Si legge e ci si iscrive qui, gratis: https://youtrend.substack.com/
🎙️#Biden ha appena perso le elezioni
Il primo grande effetto prodotto dall'intervista di Tucker Carlson a Vladimir Putin è stato quello di aver posto fine alla carriera politica di Joe Biden.
Proprio nelle stesse ore in cui usciva l'intervista, a Washington è andato in scena l'ennesimo psicodramma che ha coinvolto il presidente americano.
Nell'ambito dell'indagine che avrebbe portato, come nel caso di Trump, all'incriminazione di Biden per essersi portato a casa documenti riservati mentre era vicepresidente, il procuratore Robert Hur ha deciso di non incriminarlo perché ritiene sia "un uomo anziano ben intenzionato, con significativi problemi di memoria" e dunque non perseguibile da una Corte.
Biden per tutta risposta ha convocato una conferenza stampa per smentire con rabbia il report, ma commettendo un'altra gaffe: ha scambiato il presidente egiziano al-Sisi per il presidente del Messico.
Sui social e nell'opinione pubblica la spinta repubblicana sull'inadeguatezza di Biden sta montando alla grande, e ciò sta naturalmente producendo un immediato paragone tra lo stato di salute di Biden e quello di Putin, sancendo di fatto, a pochi mesi dalle elezioni USA, la sconfitta del candidato democratico.
Persino Repubblica è costretta a titolare così.
https://x.com/SavinoBalzano/status/1815639714411504110?t=Gfu1uF8Ia9wIGcnvWoxXnA&s=19
Cronache dal "centro", dal "polino", in poche battute: compreso che persino @CarloCalenda non lo si potrà menare ancora per il naso, tocca trovare un modo per portare la pagnotta a casa, in prospettiva.
All'esito del folgorante risultato delle europee, si dividono @matteorenzi e @marattin: lo zero virgola nulla da un lato e lo zero virgola niente dall'altro.
Prendere esempio da #Biden proprio no?
🇺🇸 Research group Marco Polo releases a 630-page report with 2,020 citations that thoroughly documents 459 crimes committed by the Biden family & their business associates.
•140 business crimes
•191 sex crimes
•128 drug crimes
Little media coverage ...
#Biden
Share and subscribe to American Majority