Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
Découvrez / partagez 6 idées de tracts pour le #RIC contre la #RéformeDesRetraites et pour le #RICveto comme droit d'opposition et d'abrogation de toutes les lois à la noix imposées par les élus !
Sur Telegram, ou sur Facebook :
https://www.facebook.com/Culture.RIC/posts/pfbid0J7w4VKU99hp1RiwkTkAtk33Rm2FPJTf6ABcpE4CexZcu8n9URT6WrRM6i8bLNGowl
Téléchargement : https://petition.ric-france.fr/petition-veto-reforme-des-retraites
Cinq 49.3 en 25 jours ?!?!
🍄 Il en pousse tellement qu’on ne pourra bientôt plus les compter !
Après un 15e 49.3 sur la budget de la sécurité sociale, #Borne en fait pousser un 16e sur la loi de finance, un 17e sur la loi de programmation budgétaire et un 18e puis un 19e à nouveau pour budget de la Sécu.
On n’arrive plus à suivre !
Il est temps que ça s’arrête…
Avec le #RICveto, on pourrait bloquer les 49.3 !
Avec le #RIClégislatif, proposer des alternatives…
Avec le #RICconstituant, supprimer le 49.3 ou limiter son utilisation.
Aidez à définir le RIC voulu par les Français :
➡️culture-ric.fr/consultation
Publis :
FB : fb.com/photo/?fbid=645835234427367
X : twitter.com/CultureRic/status/1729160608493576612
Insta : instagram.com/p/C0J66spqSVt
Avec le #RICconstituant, on pourrait supprimer ou limiter le 49.3 !
Avec le #RICveto, on pourrait bloquer les 49.3 !
Avec le #RIClégislatif, on pourrait proposer des alternatives !
Avec le #RICrévocatoire, ils ne s’y risqueraient même plus...
Aidez à définir le #RIC voulu par les Français
➡️culture-ric.fr/consultation
✏️ Fred Sochard
_____________________
Un nouvel illustrateur, fervent défenseur de la Démocratie, a accepté de nous laisser utiliser ses dessins pour promouvoir le #RIC et la #Démocratie.
Il s’agit de Fred Sochard, un talentueux illustrateur pour la presse et l'édition jeunesse. Il a étudié aux Arts Décoratifs de Paris. Ses sources d’inspiration sont diverses, mélangées : art brut, art populaire, art tribal, contes du monde entier, histoires de marins ou de pirates !
Vous pouvez en voir plus ici : fredsochard.com
__________
Partager
➤ FB - X - Insta
80% des Français sont opposés à la #RéformeDesRetraites et pourtant, ils sont impuissants…
75% pensent que malgré la forte opposition, la réforme aura lieu quand-même...
Il nous faut un nouveau droit politique, celui de pouvoir s’opposer aux lois injustes : le #RICveto !
Partagez massivement cette pétition pour la mise en place du RIC veto :
➡️https://petition.ric-france.fr/petition-veto-reforme-des-retraites
#Retraite#Borne#Macron#JusticeSociale#RIC#Référendum#Retraites#StopRetraiteMacron#RetraiteA60Ans#greve19janvier#19Janvier