Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Zece Prâjini's Peasant Brass Band — Fanfare paysanne de Zecz Prâjini (Buda Records, 1996)
#traditional#brass#gypsy#Romania
Ансамбль румынской цыганской народной музыки из села Зеце Прэджини под городом Яссы. В музыке коллектива очень много балканской краски. Общий стиль исполнения очень быстрый, традиционный, акустический, но тем не менее напоминающий работы Горана Берговича для фильмов Эмира Кустурицы, для Андерграунда в частности. Частично альбом был записан в 1989 году в концертном зале Филармонического оркестра города Яссы, а частично – во время живого выступления в родном селе коллектива в 1993 году. Альбом входит в серию Musique Du Monde французского лейбла Buda Records, но так же был выпущен в Румынии лейблом Muzeul Țăranului Român под другим названием и с другой обложкой.
🔗Spotify | AppleMusic
Balimaya Project — Wolo So (Jazz re:freshed, 2021)
#jazz#afro_jazz#brass#afrobeat#kora#djembe#Senegal#United_Kingdom
Balimaya Project — лондонский ансамбль из 16 музыкантов под руководством британского композитора и исполнителя на джембе Яхаэля Камара Ононо. Шумный лондонский джаз и фольклор народа менде Западной Африке, полиритмы, мощные духовые и виртуозное исполнение на сенегальской коре: все это на дебютной пластинке Balimaya Project, на которой помимо всего прочего отметились музыканты из Seed Ensemble и уже культовой группы Kokoroko.
Spotify | AppleMusic | Bandcamp | VK
Sons of Kemet — Black to the Future (Impulse! Records, 2021)
#tribal#spiritual#free_jazz#brass#jazz#afrobeat#soca#afro_caribbean#United_Kingdom
Четвертый альбом выдающегося британского скасофониста Шабаки Хатчингса и сыновей Египта. Как и на предыдущем альбоме Your Queen Is a Reptile, посвященном ярким африканским женщинам, на новом релизе нас ожидает сильная духовая секция, африканский мистицизм и остросоциальные тексты, посвященные угнетению африканцев. В попытке объединить различные течения музыки африканских диаспор, Хатчингс пригласил принять участие в работе над альбомом артистов, занимающихся самой разной музыкой. Среди них рэперы Kojey Radical и D Double E, соул-певица Lianne La Havas и поэт Joshua Idehen.
Spotify | AppleMusic
Petrojvic Blasting Company — A History of Public Relations Dilemmae (Self-released, 2010)
#gypsy#brass#jazz#accordion#balkan#trombone#trumpet#tuba#United_States
Единственный альбом цыганской группы из Лос-Анджелеса, основанной братьями Джастином и Джошем Петройвичами. Музыка группы сочетает в себе элементы традиционного джаза и звуки исторической родины братьев, балканского полуострова. Хотя у Blasting Company есть один альбом с своими песенями, записанный уже десять лет назад, группа исполняет традиционную балканскую музыку и предпочитает живые выступления на свежем воздухе. Petrojvic Blasting Company также принимали участие в написании ряда саундтреков, самый известный из которых — к мультфильму Патрика Макхэйла «По ту сторону изгороди».
🔗Spotify | AppleMusic