Функция 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
Nota #FdI: “Fratelli d’Italia difende le regole democratiche di convivenza che si basano sul diritto di manifestare e il dovere di farlo pacificamente e nel rispetto della legge. La sinistra che spalleggia i violenti è la causa dei disordini a cui abbiamo assistito”.
@UltimoraPolitics
Come funziona l'emendamento #FdI per gli studenti fuorisede ❓
Esempio 1:
Mario è un ragazzo residente a Cosenza (Circoscrizione Sud) ma studia a Napoli (Circoscrizione Sud)
Mario può votare a Napoli in un'apposita sezione elettorale: partiti e candidati sono gli stessi
Esempio 2:
Giulia è una ragazza residente a Cosenza (Circoscrizione Sud) ma studia a Pavia (Circoscrizione Nord-Ovest)
Giulia deve presentare una domanda al Comune di Cosenza entro 35 giorni dal voto. Dopo il via libera, Giulia può votare in una speciale sezione elettorale del capoluogo di regione: a Milano potrà votare per i partiti e i candidati della Circoscrizione Sud
Nota Bene:
Mario e Giulia possono votare fuorisede solo per le Europee, ma non per le Amministrative
@UltimoraPolitics
Salario minimo, l'invito di #FdI alle opposizioni: "Rinvio dell'esame della proposta a settembre per aprire un confronto più ampio sul tema di lavoro e retribuzione. Altrimenti, settimana prossima si andrà alla votazione dell'emendamento soppressivo"
@UltimoraPolitics
Superbonus, niente proroga per le 'villette'. Fonti parlamentari riferiscono che si va verso il ritiro dell'emendamento di #FdI al Milleproroghe che prevedeva l'estensione dal 31 marzo al 30 giugno
@UltimoraPolitics
Eletto a Bologna il segretario della Cgil Michele Bulgarelli con l'inno Urss. Attacco di #FdI: "Landini chieda scusa, è un'offesa alle vittime ucraine"
@UltimoraPolitics
Case green, l'Ue accelera sulla direttiva che obbliga di portare entro il 2030 tutti gli immobili almeno in classe E: due edifici italiani su tre sarebbero fuori norma. Ira di #FdI, che si dice pronta a bloccare la norma: "Le case degli italiani non si toccano"…
Case green, l'Ue accelera sulla direttiva che obbliga di portare entro il 2030 tutti gli immobili almeno in classe E: due edifici italiani su tre sarebbero fuori norma. Ira di #FdI, che si dice pronta a bloccare la norma: "Le case degli italiani non si toccano"
@UltimoraPolitics
Manovra, la versione finale dell'emendamento di #FdI approvato in commissione Bilancio prevede che i cinghiali abbattuti in città potranno essere destinati al consumo alimentare, una volta sottoposti ad analisi igienico-sanitarie
@UltimoraPolitics24
#Italia
Con 84 voti favorevoli e 58 contrari, al Senato è stata approvata definitivamente la proposta di legge presentata da #FdI|ECR per rendere la gestazione per altri (GPA) un reato universale, cioè perseguibile in Italia anche se praticata all’estero da cittadini o cittadine italiane.
La legge consiste in un solo articolo, che modifica la legge che rende illegale la GPA aggiungendo questa frase: «Se i fatti di cui al periodo precedente sono commessi all’estero, il cittadino italiano è punito secondo la legge italiana».
Nota: La gestazione per altri è la tecnica di procreazione assistita prevede che la gravidanza sia portata avanti da una persona per conto di altri. In Italia è vietata dalla legge 40 del 2004, la legge di riferimento per la procreazione assistita, con un divieto che prevede la reclusione fino a due anni e una multa fino a un milione di euro.
@OsservatorioItaliano
Lunga intervista del TIME a Giorgia #Meloni e alla leadership di #FdI sul TIME, che le dedica la copertina.
Leggila qui 👉https://time.com/7304882/giorgia-meloni-interview/
@UltimoraPolitics
Giorgia #Meloni (#FdI): “l’attuazione del PNRR procede nei tempi previsti e nel rispetto di tutti gli obiettivi concordati a livello europeo, unici parametri di valutazione oggettivi dello stato di avanzamento del PNRR.
Ringrazio il Ministro Fitto per il grande lavoro svolto in questi anni nell’attuazione del PNRR, che ha consentito all’Italia di essere la prima Nazione in Europa per numero di obiettivi raggiunti, per risorse complessive ricevute e per richieste di pagamento formalizzate”.
@UltimoraPolitics