Функция 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
PARRISAL DE BECEITE y COMARCA DE MATARRAÑA🍃· Puente de Mayo
📆Viernes 1 a Domingo 3 de Mayo
✅Pincha y recibe INFO en tu WhatsApp👉https://cristalro.ca/w2314
⏰Hora de salida: 07:00h G / 07:30h F / 08:00h PC
⏰Hora de regreso: 21:00h PC / 21:10h F / 21:30h G
📌Punto de salida: Getafe / Fuencarral Pueblo/ Plaza Castilla
💥PROMO: 319€ (Socios 309€)
✅Incluye: 🚌Autocar, 👣Rutas, 🆘Seguro 👫Guías 🏨Hotel🥘 Desayunos y cenas
✅Mira el plan 👉https://cristalderoca.com/senderismo/viaje-senderismo-grupo-parrizal-beceite/
El Matarraña, conocido como la “Toscana aragonesa” 🏞️✨, esconde auténticos tesoros artísticos 🎨 y naturales 🌿. Sus pueblos conservan de tal forma su aire medieval o renacentista 🏰⏳ que, al pasear por ellos 🚶♀️🚶♂️, sentirás estar en otra época 🕰️.
Nos encontraremos pozas 💦, estrechos y cañones 🪨🏞️, siempre con la compañía del río Matarraña 🌊💙. ¿Te vienes a descubrirlo? 🤗🥾 Paisajes que te impresionarán... 😍🌄
#senderismo#trekking#excursiones#montaña
¡Un viaje de película! ✅ Calas asombrosas 🌊✅ Castillos 🏰✅Gente maja 🫶✅ Party Boat ⛵🥳
🔜 1 al 3 Mayo ¿te unes al grupo?
🔗https://cristalro.ca/2313
📞 676 01 09 44
#senderismo#senderismomadrid#trekking#Excursiones#naturaleza
🏃🏃Últimas plazas 🏃♀🏃♀
LAS ALPUJARRAS GRANADINAS· Puente de Mayo
📆Jueves 1 a Domingo 4 de Mayo
Pincha y recibe INFO en tu WhatsApp: 👉https://bit.ly/3ZSI2TU
💥PROMO: 399€ (Socios 389€)
✅Incluye: 🚌Autocar, 👣Rutas, 🆘Seguro 👫Guías 🏨Hotel 4*🥘 Desayunos y cenas
✅Mira la actividad: 👉https://bit.ly/49Vd8PL
Entre Sierra Nevada y el Mediterráneo encontramos la Alpujarra Granadina: montañas espectaculares con preciosos valles. Descubre Lanjarón, Capileira, Pampaneira, Pueblos blancos de la serranía granadina...Asómbrate a la llamada y disfruta de las playas de la Costa Tropical...¡todo un lujo de viaje!
🔗www.cristalderoca.com
#senderismo#trekking#excursiones#montaña#senderismomadrid
Si viajas en grupo, nunca querrás viajar de otra manera....
¿empezamos por la Playa de las Catedrales? 😍
Únete al grupo🏃♀🚌
▶https://bit.ly/3C4CBJY
#senderismo#trekking#Excursiones#naturaleza#playadelascatedrales
CAMINITO DEL REY, MÁLAGA y SU COSTA 🌄· Puente de San Isidro
📆Jueves 15 a Domingo 18 de Mayo
Pincha y recibe INFO en tu WhatsApp: 👉https://bit.ly/3CRn6p4
⏰Hora de salida: 07:00h G / 07:30h F / 08:00h PC
⏰Hora de regreso: 21:00h PC / 21:10h F / 21:30h G
📌Punto de salida: Getafe / Fuencarral Pueblo/ Plaza Castilla
💥PROMO:
Hasta 9 Mayo: 399€ (Socios 389€)
PRECIO: 449€ (Socios 439€)
✅Incluye: 🚌Autocar, 👣Rutas, 🆘Seguro 👫Guías 🏨Hotel 4*🥘 Desayunos y cenas
✅Mira el programa: 👉https://bit.ly/3SiKi2d
🌊 Málaga marinera, naturaleza en todo su esplendor 🌿, pueblos blancos 🏡 de hermosa arquitectura con románticas leyendas 💕. La alta sierra ⛰️ donde se abarca el horizonte hasta perderse en la inmensidad azul del mar 🌅. Enclaves escondidos 🏞️ donde la naturaleza más pura y salvaje 🦅🌳 rodea el ambiente...
Descubre el que fue considerado en su día el "sendero más peligroso del mundo"... 😱🏔️ ¡Todo un viajazo! ✈️🔥
🔗www.cristalderoca.com
#senderismo#trekking#excursiones#montaña#senderismomadrid#caminitodelrey
⌛Tic-Tac tic tac ¡se acaban las plazas de Semana Santa!
🏃🏻♀ No te quedes en tierra🏃🏻♀
📞676 01 09 44
🔗cristalderoca.com
#senderismomadrid#trekking#Excursiones#naturaleza#montañas #facebookpost#SemanaSanta2026
🧙 En lugar de ver El Cares en reels y en pantallas, ¡te llevamos en vivo y en directo!🐐...Ven y descúbrelo 🐾
🗓13 a 15 Junio
👀 Mira el plan ▶https://bit.ly/3lfpblF
#senderismomadrid#trekking#excursiones#naturaleza#montañas #facebookpost#rutadelcares
🌟 Queridos Reyes Magos, 📝🐫🤴🏿🐫
este año he sido muy buen@ senderista cristalrockero🥾🌲: he cuidado la naturaleza 🌿, he reciclado mucho ♻️, he cuidado a mis compañeros 🫂 compartiendo mi bocadillo 🥪 en la excursión 🚶♂️ y he hecho mucho deporte 🏃♂️... así que ¡merezco que me traigas muchos viajes 🚌🌳🏔️ este año! 🎒✨💫
Upss! por cierto, sólo tengo cerveza🍻y fuet🥓 para los camellos, la leche con galletas se me terminó 😬
gracias y besotes ❤
#senderismo#27añosjuntos#trekking#excursiones#naturaleza#cristalderocasenderismo#clubmontaña#senderismomadrid
⌛ Tic-tac-tic tac ¡quedan 3 días! 🏃♀️🏃♀️
🏖️ LA PLAYA DE LAS CATEDRALES 💙
📅 15–20 de julio 🎒🌊
🗺️ Programa 👉https://cristalderoca.com/senderismo/viaje-senderismo-playa-catedrales-marina-lucense/
☎️ 676 01 09 44
#senderismo#playadelascatedrales#senderismomadrid#trekking#Excursiones#naturaleza#montañas #facebookpost#viajesverano
¿Viajas en Agosto? mejor en grupo! 👩👩👦👦😎🏖🌳🌞
☎️ 620 51 94 07
#senderismo#verano2025#senderismomadrid#trekking#Excursiones#naturaleza#montañas #facebookpost#viajesverano