Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Positive Rate Party: Главные звёзды Main танцпола Neurofunk!
⚡️Plasti-X — специальный гость вечеринки, босс Reactor Radio и преподаватель диджей-школы Neurobunker. Наставник, который знает, как создавать настоящую магию на танцполе.
💥Hell G & Infernal — звёздный дуэт, чьи сеты зарядят вас энергией и драйвом. Их выступления — это всегда незабываемое шоу.
💣Выпускники школы Neurobunker, которые уже готовы удивлять своей музыкой:
●Graviplash — звук, который ломает гравитацию.
●Unquiet & MG42 — союз бешеной энергии и пулемётного грува.
●D.O.K — звук, который ставит всё с ног на голову.
●DONVITALYNO — неподражаемый стиль и максимум эмоций.
●MUFFINWITHNOTHING — взрывное звучание с неповторимым характером.
Это будет ночь, которую невозможно пропустить. Positive Rate Party — мы делаем громче!
🎟 Билеты по ссылке: qtickets.ru/event/147641
‼️ На входе билеты будут дороже - успевайте приобрести до начала пати!
‼️ FC / DC / 18+
#positiverate#drumnbass#neurofunk#dubstep#deep#paradise17#dnb#SPBdnb#Solid_Bangerz
Встречайте наших специальных гостей!💥
Hell G & Infernal (Solid Bangerz) - настоящие поклонники ломанного ритма, один мешает все со всем, другой главный вагон вожатый нейропоездов.
Два демона предстанут для вас в парном выступлении, будет это чистое нейро или дикая помесь всего? Приходите и все сами узнаете 28 февраля на Positive Rate, до скорой встречи!
🎟 Билеты по ссылке: http://qtickets.ru/event/147641
‼ На входе билеты будут дороже - успевайте приобрести до начала пати!
‼ FC / DC / 18+
#positiverate#drumnbass#neurofunk#dubstep#deep#paradise17#dnb#SPBdnb#Solid_Bangerz