Функция 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
#Italia
Commento del Presidente del Piemonte Alberto #Cirio (#FI|PPE) sulla decisone di Elena Chiorino (#FdI|ECR) di restituire l’incarico di Vicepresidente della Regione Piemonte:
“Apprezzo il gesto di Elena Chiorino, perché di fronte a questi fatti era necessario dare un segnale e il segnale è che le istituzioni vanno sempre tutelate e messe in sicurezza. Come ho già avuto modo di dire sette anni di conoscenza e di lavoro insieme mi hanno dimostrato la sua capacità e la sua correttezza su cui non nutro alcun dubbio. Tuttavia - prosegue il presidente - anche se ha posto rimedio non appena compresa la situazione, la leggerezza che ha compiuto è stata grave, perché fatta da chi ha ruoli istituzionali importanti e necessitava di una reazione da parte della Regione. Reazione che, come è mia consuetudine, è stata ragionata ed equilibrata: la mia è la scelta di un presidente che non si gira dall’altra parte perché ha a cuore il bene delle istituzioni”.
@Osservatorioitaliano
#Italia#Referendum2026
Il Presidente della Regione Piemonte Alberto #Cirio (#FI|PPE) ha votato ieri verso le 13:30 con suo figlio.
@Osservatorioitaliano
#Italia
Nonostante la dimissioni da Vicepresidente della Regione Piemonte, Elena #Chiorino (#FdI|ECR) resta assessora nella giunta di Alberto #Cirio (#FI|EPP), e sono confermate le sue deleghe: Istruzione e Lavoro. Esponente biellese di Fratelli d'Italia, Chiorino è anche lei coinvolta nell'affaire Delmastro, in quanto è stata titolare di quote, poi lasciate, di un ristorante romano di Miriam Caroccia, figlia diciottenne di Mauro Caroccia, condannato in via definitiva dalla Cassazione perché prestanome del clan mafioso dei Senese.
@Osservatorioitaliano
#Italia#Piemonte
Il caso Delmastro scuote la Regione Piemonte: le opposizioni chiedono la revoca delle deleghe o le dimissioni della Vicepresidente della giunta regionale, Elena #Chiorino (#FdI|ECR).
Fedelissima dell’ex sottosegretario alla Giustizia, Chiorino è socia del ristorante appartenente alla famiglia Caroccia, vicina al clan Senese.
Il Presidente Alberto #Cirio (#FI|EPP), oggi assente in Consiglio regionale per impegni a Bruxelles, annuncia che riferirà in Aula insieme alla sua vice la prossima settimana.
@OsservatorioItaliano
#Italia
❗️ Perde forza l'appello dei governatori a Draghi: dopo il no dei 3 governatori di #FdI|ECR, si sfilano anche i forzisti #Cirio, #Bardi, #Toma e #Occhiuto.
@UltimoraPolitics
#Italia#Piemonte
Il Segretario di #Azione|RE Carlo #Calenda sul nuovo vicepresidente del Piemonte Maurizio #Marrone (#FdI|ECR):
"È un filo putiniano. La nomina di un filo putiniano con una pessima storia di viaggi in Donbass e apertura di finti consolati alla vicepresidenza della Regione Piemonte è di una gravità assoluta e vorrei un intervento diretto di Antonio #Tajani e #Cirio."
Nota: Azione, in Piemonte, fa parte della maggioranza del presidente.
@Osservatorioitaliano