Функция 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
Armenian Song and Dance Ensemble — Armenian Festival (Monitor Records, 1961)
#traditional#tar#duduk#Armenia
Альбом Armenian Festival знакомит слушателей с образцами армянской народной музыки и традиционными инструментами. В сопровождении дудука, деревянной флейты с двойной тростью, и тара, струнного инструмента с деревянным корпусом, обтянутым кожей, звучат песни о сельском труде, природе и жизни горцев.
Особое место в альбоме занимает жанр хоровел (հորովել), исполняемый во время пахоты. Обратите внимание на песню «Gutani Yerg (Գութանի Երգ)» — одно из ярких воплощений этой традиции.
В записи участвовали артисты Государственного хора Армении, Армянского оркестра народных инструментов, вокалист Вагаршак Мамиконян и тарист Соломон Сейранян. Все они объединились в «Армянский ансамбль песни и танца» ради этого альбома.
Руководил процессом Татул Тигранович Алтунян — дирижёр, музыковед-фольклорист и профессор Ереванской консерватории. Благодаря его академической закалке аранжировки получились значительно плотнее и сложнее традиционных. Но это не выглядит как попытка учёного «подправить» народную музыку, чем часто грешат советские записи. Эта пластинка местами скорее напоминает арабскую эстраду, Умм Кульсум или Файруз, но с корнями, уходящими в армянскую, а не арабскую землю.
🔗Spotify | Telegram
Benik Abovian & Zaven Azibekian — Traditional Musicians From Tavush (Maison Des Cultures Du Monde, 2002)
#traditional#field_recording#dhol#duduk#zurna#sring#dam#Armenia
Опираясь на географическое положение Армении и многонациональную историю Кавказа, армянскую народную музыку можно считать частью ближневосточного музыкального наследия. Однако, на протяжении веков армянская музыка находила свое вдохновение в сельских и пастушеских мелодиях, средневековых христианских религиозных монодиях, а также в городских традициях гусанов — бардов сасанидского, парфийского и, конечно, армянского происхождения. Этот путь дал начало глубокой и разнообразной музыкальной культуре, которая сохраняет свой уникальный характер.
Современные армянские народные музыканты гордятся этим разнообразным наследием, которое значительно обогатилось в XIX и XX веках. Период потрясений того времени, в частности, геноцид 1915 года, а также политика урбанизации в советской Армении, способствовали тому, что народная музыка, как сельская, так и городская, была сохранена и увековечена деревенскими музыкантами.
Тавушская область, расположенная на северо-востоке Армении, недалеко от границ с Грузией и Азербайджаном, не является исключением. Как и во многих других регионах Армении, народная музыка здесь до сих пор исполняется в деревнях во время свадеб, фестивалей и похорон.
Последователи древних традиций, гусаны Беник Абовян и Завен Азибекян признаны одними из лучших исполнителей тавушской народной музыки. В 2001 году в деревне Кирантц и городке Ноемберян Николас Бергер записал игру музыкантов для французского Института мировых культур. В течение всего альбома звучат импровизации музыкантов на разнообразных духовых инструментах, таких как зурна, дудук и сринг, сопровождаемые ритмами доула.
🔗Spotify | AppleMusic | Telegram
Hesam Inanlou — A Lament for Existence (Hermes Records, 2021)
#persian_classical#jazz#kemenche#tombak#duduk#nyckelharpa#bandoneon#erhu#Iran
A Lament for Existence — альбом камерной традиционной музыки с задумчивым и печальным настроением. На нем мы можем услышать ряд дуэтов, записанных иранским исполнителем на киманче, Хесам Инанлоу, с западными и восточными музыкантами. Здесь звучат как фортепиано и кларнет, так и куда более необычные инструменты, такие как бандонеон и эрху. Музыка была написана в дистанционном формате во время пандемии короновируса в 2020 году и опубликована 2021 году.
Spotify | AppleMusic | VK