Функция 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
#Concierto5#Emperador#Beethoven#MaurizioPollini#DanielePollini
Título:Concierto para piano y orquesta nº 5, en mi bemol mayor, op. 73, "Emperador"
Autor:Ludwig van Beethoven
Movimientos:
🎵 00:35 I. Allegro
🎵 21:00 II. Adagio un poco mosso
🎵 28:53 III. Allegro ma non troppo
Interpretación:
Orquesta Sinfónica de Galicia
Maurizio Pollini - Piano
Director:Daniele Pollini
Fuente:🎼
@ClasicaAlAtardecer
#Concierto5#Emperador#Beethoven#MaurizioPollini#DanielePollini
EL CONCIERTO PARA PIANO N.º 5 EN MI BEMOL MAYOR, OP. 73
El concierto para piano n.º 5 en mi bemol mayor, op. 73, conocido popularmente como «Emperador», fue el último concierto para piano del compositor Ludwig van Beethoven. Fue escrito entre 1809 y 1811 en Viena y está dedicado a Rodolfo de Austria, protector y pupilo de Beethoven. En 1812 Carl Czerny, alumno del compositor, estrenó la obra en Viena. El sobrenombre de «Emperador» no fue asignado por el propio Beethoven sino por Johann Baptist Cramer, el editor inglés del concierto.
El Emperador está dividido en los tres movimientos tradicionales de los conciertos:
🎵I. Allegro
🎵 II. Adagio un poco mosso
🎵 III. Rondo - Allegro ma non troppo
El primer movimiento se abre con un grandioso acorde de MI bemol para toda la orquesta, interrumpido por una serie de arpegios igualmente imponentes para el solo, sugiriendo una cadencia temprana. Pero en lugar de ello, Beethoven alterna pronunciamientos poderosos para la orquesta y el piano. La introducción terminó, el piano ofrece un tema amplio y arrogante del cual (y del subsiguiente, más tenue, segundo tema) Donald Francis Tovey escribió: "La orquesta no sólo es sinfónica, sino que está capacitada por la necesidad misma de acompañar ligeramente al solo para producir efectos orquestales etéreos queestán en una categoría bastante diferente de cualquier cosa en las sinfonías. Por otra parte, la parte solista desarrolla la técnica de su instrumento con una libertad y brillantez para la que Beethoven no tiene ocio en las sonatas y la música de cámara".
El segundo movimiento es una de las inspiraciones sublimes del compositor. Las cuerdas silenciadas tocan un tema de incomparable belleza y triste ternura, la piano respuesta en trillizos silenciosos y descendentes, creando una sutil tensión hasta que el tema queda totalmente expuesto. El carácter nocturno del movimiento se ve favorecido por un delicado equilibrio de suaves vientos de madera, cuerdas y el solo, a medida que la música se desvanece misteriosamente. Luego, sobre una nota de trompeta sostenida, el piano introduce, suave y tranquilo andante, el tema del rondó final. De repente, dramáticamente, el tema final piano se precipita, un grandioso y exuberante allegro.
El tercer movimiento sigue ininterrumpidamente al segundo y es un típico rondó italiano, de la forma (ABACABA). El tema principal es interpretado por el piano y luego respondido por la orquesta. Escalas en el piano introducen el segundo tema, que también es respondido por la orquesta. En la sección C, mucho más larga, se presenta el tema A en tres tonalidades diferentes.
En ella, Beethoven nos enseña el tema principal en tres tonalidades diferentes, demostración inequívoca de su pericia en el arte de la modulación y el juego formal. De igual modo, mención especial cabríahacer del final del concierto, donde un solitario dúo entre el solista y el timbal parece generar un diálogo a punto de detenerseen una mansa quietud que será rápidamente desquebrajada por el piano, cuyo explosivo final contagiará de su brioso ímpetu a toda la orquesta
Así pues, podemos afirmar sin miedo a caer en ninguna ponderación desmesurada que el concierto “Emperador” de Beethoven es mucho más que una obra icónica en el repertorio para piano y orquesta. Su quinto concierto no solo abre la puerta hacia el concierto romántico, sino que la traspasa. La nobleza de sus exhalaciones y el sentido triunfal de las mismas hacen que esta partitura siga deslumbrando doscientos años después de ser concebida. Un sentido triunfal que, paradójicamente, en su vida apenas hallamos; quizá por este motivo, Beethoven nos legó este concierto como el mejor de los consuelos para las derrotas de nuestra propia condición humana.
@ClasicaAlAtardecer
#Concierto5#Emperador#Beethoven#MaurizioPollini#DanielePollini
Título:Concierto para piano y orquesta nº 5, en mi bemol mayor, op. 73, "Emperador"
Autor:Ludwig van Beethoven
Movimientos:
🎵 00:35 I. Allegro
🎵 21:00 II. Adagio un poco mosso
🎵 28:53 III. Allegro ma non troppo
Interpretación:
Orquesta Sinfónica de Galicia
Maurizio Pollini - Piano
Director:Daniele Pollini
Fuente:🎼
@ClasicaAlAtardecer
#Concierto5#Emperador#Beethoven#MaurizioPollini#DanielePollini
EL CONCIERTO PARA PIANO N.º 5 EN MI BEMOL MAYOR, OP. 73
El concierto para piano n.º 5 en mi bemol mayor, op. 73, conocido popularmente como «Emperador», fue el último concierto para piano del compositor Ludwig van Beethoven. Fue escrito entre 1809 y 1811 en Viena y está dedicado a Rodolfo de Austria, protector y pupilo de Beethoven. En 1812 Carl Czerny, alumno del compositor, estrenó la obra en Viena. El sobrenombre de «Emperador» no fue asignado por el propio Beethoven sino por Johann Baptist Cramer, el editor inglés del concierto.
El Emperador está dividido en los tres movimientos tradicionales de los conciertos:
🎵I. Allegro
🎵 II. Adagio un poco mosso
🎵 III. Rondo - Allegro ma non troppo
El primer movimiento se abre con un grandioso acorde de MI bemol para toda la orquesta, interrumpido por una serie de arpegios igualmente imponentes para el solo, sugiriendo una cadencia temprana. Pero en lugar de ello, Beethoven alterna pronunciamientos poderosos para la orquesta y el piano. La introducción terminó, el piano ofrece un tema amplio y arrogante del cual (y del subsiguiente, más tenue, segundo tema) Donald Francis Tovey escribió: "La orquesta no sólo es sinfónica, sino que está capacitada por la necesidad misma de acompañar ligeramente al solo para producir efectos orquestales etéreos queestán en una categoría bastante diferente de cualquier cosa en las sinfonías. Por otra parte, la parte solista desarrolla la técnica de su instrumento con una libertad y brillantez para la que Beethoven no tiene ocio en las sonatas y la música de cámara".
El segundo movimiento es una de las inspiraciones sublimes del compositor. Las cuerdas silenciadas tocan un tema de incomparable belleza y triste ternura, la piano respuesta en trillizos silenciosos y descendentes, creando una sutil tensión hasta que el tema queda totalmente expuesto. El carácter nocturno del movimiento se ve favorecido por un delicado equilibrio de suaves vientos de madera, cuerdas y el solo, a medida que la música se desvanece misteriosamente. Luego, sobre una nota de trompeta sostenida, el piano introduce, suave y tranquilo andante, el tema del rondó final. De repente, dramáticamente, el tema final piano se precipita, un grandioso y exuberante allegro.
El tercer movimiento sigue ininterrumpidamente al segundo y es un típico rondó italiano, de la forma (ABACABA). El tema principal es interpretado por el piano y luego respondido por la orquesta. Escalas en el piano introducen el segundo tema, que también es respondido por la orquesta. En la sección C, mucho más larga, se presenta el tema A en tres tonalidades diferentes.
En ella, Beethoven nos enseña el tema principal en tres tonalidades diferentes, demostración inequívoca de su pericia en el arte de la modulación y el juego formal. De igual modo, mención especial cabríahacer del final del concierto, donde un solitario dúo entre el solista y el timbal parece generar un diálogo a punto de detenerseen una mansa quietud que será rápidamente desquebrajada por el piano, cuyo explosivo final contagiará de su brioso ímpetu a toda la orquesta
Así pues, podemos afirmar sin miedo a caer en ninguna ponderación desmesurada que el concierto “Emperador” de Beethoven es mucho más que una obra icónica en el repertorio para piano y orquesta. Su quinto concierto no solo abre la puerta hacia el concierto romántico, sino que la traspasa. La nobleza de sus exhalaciones y el sentido triunfal de las mismas hacen que esta partitura siga deslumbrando doscientos años después de ser concebida. Un sentido triunfal que, paradójicamente, en su vida apenas hallamos; quizá por este motivo, Beethoven nos legó este concierto como el mejor de los consuelos para las derrotas de nuestra propia condición humana.
@ClasicaAlAtardecer