Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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 les belles images de l'événement #giletsjaunes Convergence #RIC et MCP qui a été organisé il y a quelques jours à #Toulouse ! Livres, affiches, tracts, éducation populaire, panneau « Médias Français : qui possède quoi ? » etc.
Un ÉNORME MERCI à Akina (membre et partenaire du MCP) avec le Front Médiatique & Inform’Action et aux autres bénévoles de Toulouse qui prennent le temps d’organiser des stands et de faire connaître TOUS les acteurs de la Convergence pour le RIC.
N’hésitez pas à contacter le MCP pour vous aussi organiser de tels stands !
Voir les images :
https://www.mouvement-constituant-populaire.fr/2022/actions/evenement-a-toulouse-pour-la-convergence-ric-avec-akina
France Ligue 1🇫🇷
2026-04-03 18:45 UTC
Paris Saint Germain vs. Toulouse
Predicted outcome: Paris Saint Germain✅
Predicted score: 2:1
Actual: Paris Saint Germain 3:1
#PSG#Toulouse
#Football#FranceLigue1
France Ligue 1🇫🇷
2026-03-21 16:00 UTC
Toulouse vs. Lorient
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: Toulouse 1:0
#Toulouse#Lorient
2026-03-21 18:00 UTC
Auxerre vs. Stade Brestois 29
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: Auxerre 3:0
#Auxerre#StadeBrestois29
2026-03-21 20:05 UTC
Nice vs. Paris Saint Germain
Predicted outcome: Paris Saint Germain✅
Predicted score: 1:2
Actual: Paris Saint Germain 0:4
#Nice#PSG
#Football#FranceLigue1
France Ligue 1🇫🇷
2026-04-25 13:00 UTC
Lyon vs. Auxerre
Predicted outcome: Lyon✅
Predicted score: 1:0
Actual: Lyon 3:2
#Lyon#Auxerre
2026-04-25 17:00 UTC
Angers vs. Paris Saint Germain
Predicted outcome: Paris Saint Germain✅
Predicted score: 1:2
Actual: Paris Saint Germain 0:3
#Angers#PSG
2026-04-25 19:05 UTC
Toulouse vs. Monaco
Predicted outcome: Monaco❌
Predicted score: 1:2
Actual: Draw 2:2
#Toulouse#Monaco
#Football#FranceLigue1
France Ligue 1🇫🇷
2026-05-03 13:00 UTC
Lille vs. Le Havre
Predicted outcome: Lille❌
Predicted score: 1:0
Actual: Draw 1:1
#Lille#LEHavre
2026-05-03 15:15 UTC
Strasbourg vs. Toulouse
Predicted outcome: Strasbourg❌
Predicted score: 2:1
Actual: Toulouse 1:2
#Strasbourg#Toulouse
2026-05-03 15:15 UTC
Auxerre vs. Angers
Predicted outcome: Auxerre✅
Predicted score: 2:1
Actual: Auxerre 3:1
#Auxerre#Angers
2026-05-03 15:15 UTC
Paris FC vs. Stade Brestois 29
Predicted outcome: Paris FC✅
Predicted score: 2:1
Actual: Paris FC 4:0
#ParisFC#StadeBrestois29
2026-05-03 18:45 UTC
Lyon vs. Rennes
Predicted outcome: Lyon✅
Predicted score: 3:2
Actual: Lyon 4:2
#Lyon#Rennes
#Football#FranceLigue1
📣 TOURNÉE DE CONFÉRENCES : HISTOIRE ET PERSPECTIVES DES RELATIONS FRANCO-RUSSES 🇫🇷🤝🇷🇺
Une série d’interventions exceptionnelles avec :
🎙️ André Chanclu, auteur du livre « US Go Home »
🎙️ Xavier Moreau, directeur de Stratpol
🗓️ Les dates :
📍 Mardi 18 novembre – Toulouse (18h30)
📍 Mercredi 19 novembre – Perpignan (lieu et horaires à préciser)
📍 Jeudi 20 novembre – Montpellier (lieu et horaires à préciser)
📍 Vendredi 21 novembre – Aix-en-Provence, à 19h00
ℹ️ Les lieux exacts des conférences seront précisés lors de l’inscription.
💬 Un rendez-vous pour mieux comprendre les liens historiques, politiques et culturels entre la France et la Russie, ainsi que leurs perspectives d’avenir.
💰 Participation :
Conférence → 10 €
Buffet → 15 €
✉️ Inscriptions :
Toulouse: [email protected]
Aix-en-Provence : [email protected]
#Conférence#RelationsInternationales#FranceRussie#Stratpol#AndréChanclu#XavierMoreau#Toulouse#Perpignan#Montpellier#Aix#Ventabren#Débat#Culture#Histoire
France Ligue 1🇫🇷
2026-05-10 19:00 UTC
Angers vs. Strasbourg
Predicted outcome: Strasbourg❌
Predicted score: 1:2
Actual: Draw 1:1
#Angers#Strasbourg
2026-05-10 19:00 UTC
Paris Saint Germain vs. Stade Brestois 29
Predicted outcome: Paris Saint Germain✅
Predicted score: 3:1
Actual: Paris Saint Germain 1:0
#PSG#StadeBrestois29
2026-05-10 19:00 UTC
Monaco vs. Lille
Predicted outcome: Lille✅
Predicted score: 1:2
Actual: Lille 0:1
#Monaco#Lille
2026-05-10 19:00 UTC
Rennes vs. Paris FC
Predicted outcome: Rennes✅
Predicted score: 2:1
Actual: Rennes 2:1
#Rennes#ParisFC
2026-05-10 19:00 UTC
Toulouse vs. Lyon
Predicted outcome: Lyon❌
Predicted score: 1:2
Actual: Toulouse 2:1
#Toulouse#Lyon
2026-05-10 19:00 UTC
Auxerre vs. Nice
Predicted outcome: Auxerre✅
Predicted score: 2:1
Actual: Auxerre 2:1
#Auxerre#Nice
2026-05-10 19:00 UTC
Le Havre vs. Marseille
Predicted outcome: Le Havre❌
Predicted score: 2:1
Actual: Marseille 0:1
#LEHavre#Marseille
2026-05-10 19:00 UTC
Metz vs. Lorient
Predicted outcome: Lorient✅
Predicted score: 1:2
Actual: Lorient 0:4
#Metz#Lorient
#Football#FranceLigue1