Функция 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
🇨🇿 Elezioni #Cechia – L’ex premier Andrej #Babiš vince con il 35% dei voti e 82 seggi, aprendo la strada al suo ritorno tramite alleanze di governo. Il miliardario 71enne, leader populista e critico su politiche migratorie, UE e NATO, punta a rimettere in discussione la linea del Paese su Ucraina e rapporti con Mosca. Il suo partito, Azione dei Cittadini Insoddisfatti (#ANO), ha lasciato l'anno scorso Renew Europe per unirsi ai Patrioti Europei di Salvini e Le Pen.
@UltimoraPolitics
Adam by Eve: A Live in Animation
aka Adam by Eve: Un Concierto Animado
📅Año 2022
⏱Duración 58min.
País🇯🇵Japón
🎥Dirección#NobutakaYoda
📄Guion Nobutaka Yoda
Reparto
#Eve, #Hanon, #Ano
🎬Productora Studio Khara.
🚚Distribuidora Netflix
Género#Animación#Drama#Amistad#Música
Trailer | Sinopsis
Ver Aquí
AnexoAnimación | Drama | Música
❗️🇪🇺#UE — Herbert #Kickl, leader del #FPÖ austriaco, Andrej #Babis, ex primo ministro ceco e leader di #ANO, e Viktor #Orbán, primo ministro ungherese e leader di #Fidesz, annunciano la creazione di un nuovo gruppo di destra nel Parlamento europeo: si chiamerà “Patrioti per l’Europa”
@UltimoraPolitics
#Cechia🇨🇿
#Parlamentari
Risultati parziali.
Distribuzione dei seggi.
🟦 SÌ (#ANO|PfE): 80 (+8)
⬛️ Insieme (#Spolu|Centro-destra; comprende #ODS|ECR, #KDU|PPE e #TOP09|PPE): 52 (-19)
🟪 Sindaci e indipendenti (#STAN|Centro liberale): 22 (-11)
⬛️ Partito Pirata Ceco (#Piráti|G/EFA, comprende anche #Zelení|G/EFA): 18 (+14)
🟦 Libertà e Democrazia diretta (#SPD|ESN; comprende anche #Trikolora|Estrema destra, #Svobodní|Destra e #PRO|Destra): 15 (-5)
🟦 Automobilisti per se stessi (#AUTO|PfE): 13 (nuovo)
Totale: 200
Maggioranza: 101
Nota: tra parentesi è indicata la variazione rispetto alle elezioni del 2021.
@TuttoElezioni
#Cechia🇨🇿
#Parlamentari
Risultati preliminari.
Scrutinato: 100%.
Affluenza: 68,95% (+3,56% rispetto al 2021)
🟦 SÌ (#ANO|PfE): 34,51%
⬛️ Insieme (#Spolu|Centro-destra; comprende #ODS|ECR, #KDU|PPE e #TOP09|PPE): 23,36%
🟪 Sindaci e indipendenti (#STAN|Centro liberale): 11,23%
⬛️ Partito Pirata Ceco (#Piráti|G/EFA, comprende anche #Zelení|G/EFA): 8,97%
🟦 Libertà e Democrazia diretta (#SPD|ESN; comprende anche #Trikolora|Estrema destra, #Svobodní|Destra e #PRO|Destra): 7,78%
🟦 Automobilisti per se stessi (#AUTO|PfE): 6,77%
🟥 Basta (#Stačilo|Sinistra; comprende #SOCDEM|S&D e #KSČM|Comunisti): 4,30%
@TuttoElezioni
#Cechia🇨🇿
#Parlamentari
Risultati parziali.
Scrutinato: 99,95%
🟦 SÌ (#ANO|PfE): 34,57%
⬛️ Insieme (#Spolu|Centro-destra; comprende #ODS|ECR, #KDU|PPE e #TOP09|PPE): 23,33%
🟪 Sindaci e indipendenti (#STAN|Centro liberale): 11,21%
⬛️ Partito Pirata Ceco (#Piráti|G/EFA, comprende anche #Zelení|G/EFA): 8,94%
🟦 Libertà e Democrazia diretta (#SPD|ESN; comprende anche #Trikolora|Estrema destra, #Svobodní|Destra e #PRO|Destra): 7,79%
🟦 Automobilisti per se stessi (#AUTO|PfE): 6,77%
🟥 Basta (#Stačilo|Sinistra; comprende #SOCDEM|S&D e #KSČM|Comunisti): 4,31%
@TuttoElezioni
#Cechia🇨🇿
#Parlamentari
Risultati parziali.
Scrutinato: 99,18%
🟦 SÌ (#ANO|PfE): 34,77%
⬛️ Insieme (#Spolu|Centro-destra; comprende #ODS|ECR, #KDU|PPE e #TOP09|PPE): 23,20%
🟪 Sindaci e indipendenti (#STAN|Centro liberale): 11,16%
⬛️ Partito Pirata Ceco (#Piráti|G/EFA, comprende anche #Zelení|G/EFA): 8,83%
🟦 Libertà e Democrazia diretta (#SPD|ESN; comprende anche #Trikolora|Estrema destra, #Svobodní|Destra e #PRO|Destra): 7,83%
🟦 Automobilisti per se stessi (#AUTO|PfE): 6,79%
🟥 Basta (#Stačilo|Sinistra; comprende #SOCDEM|S&D e #KSČM|Comunisti): 4,33%
@TuttoElezioni
#Cechia🇨🇿
#Parlamentari
Risultati parziali.
Scrutinato: 98,12%
🟦 SÌ (#ANO|PfE): 34,98%
⬛️ Insieme (#Spolu|Centro-destra; comprende #ODS|ECR, #KDU|PPE e #TOP09|PPE): 23,03%
🟪 Sindaci e indipendenti (#STAN|Centro liberale): 11,11%
⬛️ Partito Pirata Ceco (#Piráti|G/EFA, comprende anche #Zelení|G/EFA): 8,75%
🟦 Libertà e Democrazia diretta (#SPD|ESN; comprende anche #Trikolora|Estrema destra, #Svobodní|Destra e #PRO|Destra): 7,86%
🟦 Automobilisti per se stessi (#AUTO|PfE): 6,81%
🟥 Basta (#Stačilo|Sinistra; comprende #SOCDEM|S&D e #KSČM|Comunisti): 4,35%
@TuttoElezioni
#Cechia🇨🇿
#Parlamentari
Risultati parziali.
Scrutinato: 96,25%
🟦 SÌ (#ANO|PfE): 35,23%
⬛️ Insieme (#Spolu|Centro-destra; comprende #ODS|ECR, #KDU|PPE e #TOP09|PPE): 22,83%
🟪 Sindaci e indipendenti (#STAN|Centro liberale): 11,06%
⬛️ Partito Pirata Ceco (#Piráti|G/EFA, comprende anche #Zelení|G/EFA): 8,66%
🟦 Libertà e Democrazia diretta (#SPD|ESN; comprende anche #Trikolora|Estrema destra, #Svobodní|Destra e #PRO|Destra): 7,90%
🟦 Automobilisti per se stessi (#AUTO|PfE): 6,82%
🟥 Basta (#Stačilo|Sinistra; comprende #SOCDEM|S&D e #KSČM|Comunisti): 4,38%
@TuttoElezioni
#Cechia🇨🇿
#Parlamentari
Risultati parziali.
Scrutinato: 90,31%
🟦 SÌ (#ANO|PfE): 35,95%
⬛️ Insieme (#Spolu|Centro-destra; comprende #ODS|ECR, #KDU|PPE e #TOP09|PPE): 22,28%
🟪 Sindaci e indipendenti (#STAN|Centro liberale): 10,93%
⬛️ Partito Pirata Ceco (#Piráti|G/EFA, comprende anche #Zelení|G/EFA): 8,41%
🟦 Libertà e Democrazia diretta (#SPD|ESN; comprende anche #Trikolora|Estrema destra, #Svobodní|Destra e #PRO|Destra): 8,01%
🟦 Automobilisti per se stessi (#AUTO|PfE): 6,87%
🟥 Basta (#Stačilo|Sinistra; comprende #SOCDEM|S&D e #KSČM|Comunisti): 4,45%
@TuttoElezioni
#Cechia🇨🇿
#Parlamentari
Risultati parziali.
Scrutinato: 85,66%
🟦 SÌ (#ANO|PfE): 36,26%
⬛️ Insieme (#Spolu|Centro-destra; comprende #ODS|ECR, #KDU|PPE e #TOP09|PPE): 22,05%
🟪 Sindaci e indipendenti (#STAN|Centro liberale): 10,87%
⬛️ Partito Pirata Ceco (#Piráti|G/EFA, comprende anche #Zelení|G/EFA): 8,29%
🟦 Libertà e Democrazia diretta (#SPD|ESN; comprende anche #Trikolora|Estrema destra, #Svobodní|Destra e #PRO|Destra): 8,05%
🟦 Automobilisti per se stessi (#AUTO|PfE): 6,90%
🟥 Basta (#Stačilo|Sinistra; comprende #SOCDEM|S&D e #KSČM|Comunisti): 4,48%
@TuttoElezioni
#Cechia🇨🇿
#Parlamentari
Risultati parziali.
Scrutinato: 75,22%
🟦 SÌ (#ANO|PfE): 36,94%
⬛️ Insieme (#Spolu|Centro-destra; comprende #ODS|ECR, #KDU|PPE e #TOP09|PPE): 21,56%
🟪 Sindaci e indipendenti (#STAN|Centro liberale): 10,73%
🟦 Libertà e Democrazia diretta (#SPD|ESN; comprende anche #Trikolora|Estrema destra, #Svobodní|Destra e #PRO|Destra): 8,14%
⬛️ Partito Pirata Ceco (#Piráti|G/EFA, comprende anche #Zelení|G/EFA): 8,05%
🟦 Automobilisti per se stessi (#AUTO|PfE): 6,94%
🟥 Basta (#Stačilo|Sinistra; comprende #SOCDEM|S&D e #KSČM|Comunisti): 4,54%
@TuttoElezioni