Функция 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
https://descubreenmexico.com/por-que-la-semana-santa-cambia-cada-ano-de-fecha/
#SemanaSanta
Este mes de abril muchos mexicanos y cristianos celebran la Semana Santa, es decir, la conmemoración anual de la Pasión de Cristo.
¿Qué es la pasión de Cristo?
Esta semana relata la entrada de Jesús a Jerusalén, su última cena, el viacrucis, su muerte y resurrección.
¿Cuándo es la Semana Santa este año?
Este año, la Semana Santa se celebra desde el domingo 24 de marzo hasta el domingo 31 de marzo.
¡Ardor para la fachiza!
El #AIFA sigue ganado visitantes nacionales e internacionales.
A la derecha no le gusta saber que México avanza, por eso inventan historias de fracasos.
#SemanaSanta#AIFA
¡Atención! ☝🏻
🔴 El gobierno de #DelfinaGómez (@delfinagomeza) llamó a la población a evitar el uso de fogatas y pirotecnia en zonas forestales durante el periodo vacacional de #SemanaSanta🌳🪵👇🏻
https://revistaelpolitico.com/estados/gobierno-del-edomex-pide-proteger-bosques-semana-santa/
"Mucho amor y buenas vacaciones" ❤️🌴
🔴 A través de un video desde #PalacioNacional, #Sheinbaum envió un mensaje a mexicanos por #SemanaSanta e informó cuáles son sus planes para estos días 👩🏻📹
¡Hay que presumirlo! 😎
La presidenta #Sheinbaum echa abajo el montaje de #FedericoDöring🤡
‼️Esta #SemanaSanta el AIFA tuvo 64 mil 525 pasajeros en 1,233 vuelos ✈️
¡Aunque no le guste a los prianistas! 😌
Le darán su #SemanaSanta al Tío Richie 😅
🔴 La #SCJN discutirá la próxima semana dos proyectos que, de validarse, representarán un nuevo golpe legal a #SalinasPliego👊🏻💰
https://sinlineamx.com/scjn-alista-doble-reves-legal-contra-grupo-salinas/
In Spain, Good Friday is part of Semana Santa (Holy Week). Cities hold large religious processions.
Groups called brotherhoods organize these events. People wear long robes and pointed hoods. They walk slowly as an act of penance.
Huge floats called “pasos” show scenes from the crucifixion of Jesus. These can weigh over a ton and are carried by teams underneath.
Some cities have music with drums and bands. Others stay completely silent. People also sing emotional songs from balconies.
In Seville, processions can last all night. In Málaga, there is a tradition of pardoning a prisoner. In Valladolid, old sculptures from the 16th and 17th centuries are used.
Traditional foods include torrijas and buñuelos.
🇪🇸🕯️🎭🥁
[Read more 1]
[Read more 2]
@googlefactss
#GoodFriday#SemanaSanta#Spain#Traditions#History#Culture