Функция 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
🍽 Frittata (Tortilla) de pasta 🍽
🍴Ingredientes🍴
✓fideos o espaguetis ya cocinados
✓1 cucharada de aceite de oliva virgen
✓3 cebollas finamente picadas
✓perejil
✓albahaca picada
✓1 tomate cortado en cubitos
✓4 huevos
✓½ taza de leche
✓Queso rallado
🥣 PREPARACIÓN 🥣
👁🗨 Pon aceite en una sartén y fríe las cebollas picadas hasta que queden transparentes.
👁🗨 En un bol bate los huevos y la leche. Añade la cebolla cocinada, el queso rallado, el perejil, albahaca, sal y pimienta.
👁🗨 Por último, pon los espaguetis. Mezcla bien todo.
👁🗨 En una sartén con una gota de aceite vierte la mezcla y cocina a fuego medio-bajo como si se tratase de una tortilla.
👁🗨 Da la vuelta y cocina por ambos lados.
#recetas con sobras
#CAFE#RECETAS ⛾ | Como en las mejores cafeterías: cómo preparar café con leche frío para combatir el calor https://ift.tt/XsRBZSE August 05, 2025 at 12:00PM
🍧 Arroz con Leche Cubano 🍧
🍴INGREDIENTES 🍴
3/4 tazas de arroz de grano largo o corto
2 tazas de agua
1/4 de cáscara de un limón amarillo mediano
2 palitos de canela en rama
1 lata (12 onzas) de leche evaporada
1 lata (14 onzas) de leche condensada azucarada
1 cucharadita de extracto de vainilla
1/4 cucharadita de sal
Mas agua, si es necesario
🥣 PREPARACIÓN 🥣
👁🗨 En una olla a fuego mediano a mediano alto, hierve el arroz, el agua, la cáscara de limón amarillo y los palitos; luego baja a fuego bajo y tapa. Cocina a fuego lento durante 10 minutos, o hasta que el arroz esté tierno.
👁🗨 Una vez que el arroz esté tierno, retira la cáscara de limón con una cuchara.
👁🗨 A fuego lento, agrega a la misma olla, gradualmente la leche evaporada y la leche condensada endulzada, revolviendo constantemente para evitar que el arroz se pegue.
👁🗨 Agrega la sal y el extracto de vainilla, revolviendo constantemente.
👁🗨 Cocina; continúa revolviendo durante unos 7 a 10 minutos, hasta que la mezcla espese. Hasta obtener la consistencia deseada.
👁🗨 Retira del fuego y deja enfriar antes de colocar en el refrigerador tapado.
Nota: el secreto para un gran arroz con leche es que el arroz este tierno! Siempre poner el arroz a remojar en agua al menos dos horas antes de comenzar a preparar la receta.
#postres#recetas#cubanas