Функция 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
Ministro dell’ambiente e della sicurezza energetica Gilberto #Pichetto: “L'aggiornamento del Pniec (Piano Energia e Clima), da trasmettere alla Commissione europea entro giugno 2024, riporterà anche analisi di scenario contenenti una possibile quota di energia prodotta da fonte nucleare nel periodo 2030-2050.” - ANSA
@UltimoraPolitics
Piemonte, scongiurato il blocco della circolazione per i veicoli Diesel Euro5: ok del Cdm al rinvio del contestato provvedimento a ottobre 2024. Il ministro dell'Ambiente, Gilberto #Pichetto Fratin: "L'obiettivo più importante era evitare il blocco dal 15 settembre. Ci siamo riusciti, ma la soluzione non era semplice e il risultato per nulla scontato"
@UltimoraPolitics
Crisi climatica, al Giffoni Film Festival una ragazza ammette di avere "l'eco-ansia" e dice di non voler fare figli in un mondo così a rischio. Poi si rivolge al ministro dell'Ambiente chiedendogli commuovendosi: "Ma lei non ha paura per i suoi figli?". A quel punto, #Pichetto Fratin, che è anche nonno, scoppia a piangere e asciugandosi le lacrime ribatte: "Io ho la forza del dubbio, ho un dovere verso la carica che ricopro verso di voi e verso i miei nipoti"
@UltimoraPolitics
Il Ministro #Pichetto annuncia che al CdM del 23 maggio "verrà deliberato lo stato di calamità" per le zone colpite dall'alluvione in Emilia-Romagna e "si risponderà ai primi interventi. E' già stato annunciato il blocco dei mutui e delle riscossioni tributarie." (via Ansa)
@UltimoraPolitics
Ministro dell’ambiente e della sicurezza energetica Gilberto #Pichetto: “L'aggiornamento del Pniec (Piano Energia e Clima), da trasmettere alla Commissione europea entro giugno 2024, riporterà anche analisi di scenario contenenti una possibile quota di energia prodotta da fonte nucleare nel periodo 2030-2050.” - ANSA
@UltimoraPolitics
Rigassificatore Piombino, Ministro #Pichetto: "Ci opporremo al ricorso del Comune. Attendiamo la sentenza del Tar. Abbiamo bisogno di quei 4-5 miliardi di metri cubi che verrebbero da Piombino"
@UltimoraPolitics24
Il ministro per l'Ambiente e la Sicurezza energetica, Gilberto #Pichetto, pone a nome del governo la questione di fiducia alla #Camera sul cosiddetto decreto Rigassificatori
@UltimoraPolitics
#UE
❗️ L'annuncio del Ministro dell'Ambiente, Gilberto #Pichetto: "Il Consiglio Energia ha approvato il tetto al prezzo del gas. E’ la vittoria dei cittadini italiani ed europei che chiedono sicurezza energetica. E’ la vittoria dell’Italia che ha creduto e lavorato per raggiungere questo accordo"
@UltimoraPolitics
Gilberto #Pichetto Fratin (#FI), Ministro dell’Ambiente e della sicurezza energetica: “l’Italia è pronta a dire addio al carbone, la fonte fossile che genera più emissioni di gas serra. Potremmo arrivare a chiudere tutte le centrali a carbone nei prossimi mesi, anche se per l’attuale scenario geopolitico è più probabile parlare dell’anno prossimo (2027 per la Sardegna)”. (La Stampa)
@UltimoraPolitics24