Функция 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
Various Artists — Ulyap Songs: Beyond Circassian Tradition (Flee, 2024)
#traditional#shychepshyn#apapshyn#accordion#electronic#Russia
«Песни Уляпа» — плод многогранного исследования маленького аула Уляп в Адыгее на севере Кавказа. Лейблы Ored Recordings и Flee вместе с куратором Никитой Рассказовым проделали огромную работу по фиксации местного музыкального наследия, сочетающего в себе древние мотивы, сельские традиции, криминальные песни и влияние постсоветской культуры.
Альбом можно условно разделить на две части. Первая — это аутентичная музыка, записанная в полевых условиях, в домах музыкантов, на праздниках и мероприятиях. Вторая — интерпретации, ремиксы и прочие эксперименты с этнографическим материалом.
Помимо музыки Flee издают книги, поэтому к альбому прилагается богато проиллюстрированный сборник эссе на английском и русском языках. По словам Булата Халилова, сооснователя лейбла Ored Recording, идея книги заключается в том, чтобы заострить внимание на той части черкесской культуры, которая воспринимается как низкая и маргинальная, то есть на застольных и условно «блатных» песнях. Для этого авторы пригласили в проект двух исследовательниц черкесской культуры, Лину Цримову и Мадину Паштову.
Книга получилась идейно неоднородной. Авторы спорят и не соглашаются друг с другом. Для Булата и Лины этот «низкий» жанр музыки — показатель жизнеспособности черкесской культуры. Для Мадины — скорее показатель деградации. Отрывок из книги можно прочитать на сайте EastEast.
🔗Spotify | Bandcamp | VK
Jrpjej — Qorror (Ored Recordings, 2020)
#drone#chanting#shychepshyn#apapshyn#accordion#Russia
Jrpjej — группа из Нальчика, исполняющая черкесскую традиционную музыку в личном прочтении. На их дебютном альбоме Qorror можно услышать песни на разнообразные темы. «Шэ» пели во время врачевания, когда вынимали из раненого пулю. «Iэзэ» — песня про знахаря, проводящего ритуал. «КIорэр» — заговор от оспы. «ФэрэкI» — оплакивание умершего от оспы. «Кхъуаом иорэд» — песня про охотника на кабанов. «Нысэишэ» и «Абдзах нысащэ Орэд» — свадебные песни. «Остыгъае къалэ» — сюжет из истории Кавказской войны про битву под Анапой. «Сэсырыкъуэ мафIэр къехь» — сюжет из нартского эпоса о том, как нарт Сосруко принес огонь богатырям-нартам. «Хъудымыд иорэд» — другой сюжет из нартского эпоса про двух могучих кузнецов. «Анзорыжь и уэрэд» — героическая песня про убийство князя Анзора своим подкупленным оруженосцем.
🔗Spotify | AppleMusic | Bandcamp
Jrpjej — Taboo: Songs of Love & Death (Ored Recordings, 2021)
#traditional#drone#chanting#shychepshyn#apapshyn#accordion#kamyl#bagpipes#Russia
Новый альбом группы Jrpjej на который попали песни из архивных записей прошлого века и фольклорных экспедиций лейбла. Некоторые из них исполняются близко к оригиналу, другие — изменены кардинально. Благодаря новой вокалистке, Дайане Куловой, в репертуар группы вошли не только эпос и героические произведения, но и женские песни: шуточных, сетования и плачь. Заглавной стала песня «тэбу», плач девушки, над которой надругалась группа всадников, а зачинщиком всего был парень, который воспитывался с ней в одной семье. Адыгское «тэбу» можно перевести как «просьба» или восклицания «боже». В остальных песнях девушки выходят за нелюбимых для предотвращения кровопролития, на игрищах красавиц убивает рикошетый выстрел, сказители проклинают царей, а герои войны за независимость умирают от ран, полученных в битве ради любви.
🔗Spotify | AppleMusic | Bandcamp