Функция 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
Sketch 8/100 👀.
Al final no me contuve, tuve que crear la versión a color de Cleopatra. Espero les guste. Regreso cuando tenga los primeros 10 bocetos listo. ¡Faltan 2!
Cualquier crítica es bien recibida ✨.
#Krita
Aprovechando este momento de inspiración pretendo crear alrededor de 100 rostros, con el fin de seguir mejorando, así que, espero que les guste estos bocetos. Y hasta los siguientes.
• Tiempo: 1-2 horas c/u
• Software: #Krita
3/100 👀
• Mis redes sociales: https://beacons.ai/yartydesign
Les recomiendo Beacons para los que tienen muchas cuentas de redes sociales. Pueden ver como quedó el mío :3.
Estudio de 2 horas aprox, aprendiendo otras técnicas. Me concentré más en las pinceladas y proporción; cero en los detalles.
Espero les guste. ⚓️
#Krita#Estudio
He descargado la versión Krita 5.0.2 y por fin he probado la opción de Grabadora. Es muy útil y cómodo al usar.
Elegí una referencia al azar e hice esta práctica rápida de 1 hora, para probar la opción de video.
#Krita#Estudio
¡Hola a todos! He publicado el siguiente proceso en mi canal de YouTube. Espero les guste.
Hasta los próximos proyectos. 💫
P. D. Si tienen alguna duda, siempre pueden preguntarme; ayudaré en lo que pueda. c:
#Proceso#Krita
Y aquí el proceso. Hubo una parte donde se me olvidó grabar, lo siento :')
P. D. Pueden encontrar música para sus vídeos en Audio Library y Jamendo (tiene licencia Creative Commons).
#Proceso#Krita
¡Saludos a todos!
He publicado el siguiente proceso en YouTube. Gracias a las personas que se suscribieron al canal. Poco a poco les mostraré cosas nuevas.
Hasta la próxima.
#Proceso#krita
Krita - профессиональный растровый графический редактор как для любителей, так и для профессиональных художников и иллюстраторов, использующих графические планшеты в процессе создания цифровой живописи как в домашних условиях, так и в игровых студиях. Программа имеет широкий функционал. Редактор поддерживает многослойную обработку изображений, предоставляет средства для работы с различными цветовыми моделями и обладает большим набором средств для цифровой живописи, создания скетчей и формирования текстур.
О ПРОГРАММЕ:
🗂Категория: #графика#редакторы#portable
🧐Версия: v5.2.11
💻ОС: Windows
💡Разрядность: x64
🌐Языкинтерфейса: русский
✅Установка: да
👨🏻⚕️Лечение: не требуется
#️⃣#Krita@SoftFULL