Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> text = '''
>>> Alex:8999123456
>>> Mike:+799987654
>>> Oleg:+344456789
>>> '''
Соответственно, для выделения нужных элементов будем использовать группы. Получится такой паттерн:
(\w+):([\d+]+)
Как мы будем формировать словарь из найденных групп?
>>> import re
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append({
>>> "name": match.group(1),
>>> "phone": match.group(2)
>>> })
>>> print(results)
[{'name': 'Alex', 'phone': '8999123456'}, ...]
Можно немного сократить запись используя zip
>>> results = []
>>> for match in re.finditer(r"(\w+):([\d+]+)", text):
>>> results.append(dict(zip(['name', 'phone'], match.groups())))
Но есть способ лучше! Это именованные группы в regex. Можно в паттерне указать имя группы и результат сразу забрать в виде словаря.
>>> for match in re.finditer(r"(?P<name>\w+):(?P<phone>[\d+]+)", text):
>>> results.append(match.groupdict())
То есть всё что я сделал, это добавил в начале группы (внутри сбокочек) такую запись:
(?P<group-name>...)
Теперь найденная группа имеет имя и можно обратиться к ней как к элементу списка
>>> name = match['name']
Либо забрать сразу весь словарь методом groupdict()
>>> match.groupdict()
#tricks#regex
Nathan "Prince" Nazaroff — Jewish Freilach Songs (Folkways Records, 1954)
#traditional#freilach#accordion#octophone#yiddish#jew#Ukraine#Russia
«Фреилах» — слово на идише, обозначающее «счастливый» или «радостный». Оно же используется в качестве названия музыкального стиля.
В сборнике Jewish Freilach Songs представлены восточноевропейские песни в стиле «фреилах». Среди них — известные шлягеры Tumbalalaika и Vander Ich Mir Lustig («Пока я радостно шагаю»). К слову, Vander Ich Mir Lustig сильно напоминает русскую песню «Яблочко», увековеченную революционными солдатами в период Гражданской войны. А в некоторых песнях, например, в Ihr Fregt Mich Vos Ich Troier (Вы спрашиваете меня, почему я скорблю?) можно даже расслышать русскую речь.
Исполняет песни Натан Назарофф, среди ервейских слушателей получивший прозвище «Принц». О нём мало что известно, кроме того, что он иммигрировал в США в 1914 году, имел еврейско-русское происхождение и работал в Театре Русского Балета в Нью-Йорке.
На этой пластинке Назарофф аккомпанирует себе на аккордеоне и октофоне, струнном инструменте, напоминающем мандолину. Стиль его исполнения восходит к городской музыке Одессы и других портовых городов.
В общем, привет всем любителям «Одесских рассказов» Исаака Бабеля.
🔗Spotify | AppleMusic | Telegram
The Brothers Nazaroff — The Happy Prince (Folkways Records, 2015)
#traditional#freilach#klezmer#accordion#mandolin#fiddle#payk#guitar#tzouras#ukulele#yiddish#jew#Ukraine#Russia#United_States
Эта запись — дань уважения Натану «Принцу» Назароффу. В 1954 году в Штатах он выпустил пластинкуJewish Freilach Songs и таким образом познакомил самый широкий круг слушателей с фольклором восточноевропейских евреев. До сих пор работа Назароффа остаётся чуть ли не единственной, на которой представлен музыкальный стиль Одессы и других портовых городов Черного Моря.
Международная супергруппа The Brothers Nazaroff, в состав которой входят Дэниел Кан, Псой Короленко, Майкл Альперт, Джейк Шульман-Мент, Боб Коэн и Хампус Мелин, вдохнула новую жизнь в наследие «Принца». «Братья» уверены, что эти песни заслуживают внимания и особого места в современной еврейской культуре.
Майкл Векс — автор крупнейшего исследования идиша Born to Kvetch. В своих заметках об альбоме Назароффа отмечает следующее:
Если бы в начале 1950-х годов в Америке существовали группы, исполняющие в барах песни на идише, то они звучали бы именно так
Братья Назарофф — как раз такая группа, но только из XXI века.
🔗Spotify | AppleMusic | Bandcamp