Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
🎙🇷🇺 Überblick - Kernaussagen des Vorsitzenden des russischen Sicherheitsrates Sergei Shoigu in einem Interview mit RIA Nowosti:
🔹️Die Analyse der Notwendigkeit von Nukleartests in Russland wird sofort beginnen;
🔹️Russland erwartet, dass die USA ihr Versprechen einhalten, Nukleartests zu verbieten;
🔹️Die NATO-Länder in Europa könnten jedes Szenario einer Provokation gegen Russland in Betracht ziehen;
🔹️Die EU hat sich effektiv in einen Militärblock verwandelt;
🔹️Russland wartet auf die Antwort der USA auf seinen Vorschlag zur Verlängerung des New-START-Vertrags;
🔹️Tokio opfert seine Interessen, um Washington zu gefallen.
Quelle RIA Nowosti
👀 Teilen kann zum Aufwachen beitragen!
✨🆕🌐Hauptkanal
✨▶️🌐 Videokanal
✨▶️🙂Funnykanal
#Russland#Shoigu#Interview#RIANowosti
@RusEmbMalta:
🇷🇺🛡️13th International Security Meeting to Be Held in Moscow
📅 On May 27–29, 2025, Moscow will host the 13th International Meeting of High Representatives for Security Issues under the chairmanship of Secretary of the Russian Security Council Sergey Shoigu.
🌍 More than 150 countries from the Global South and East have been invited to participate, along with representatives of the #CIS, #CSTO, #EAEU, #SCO, and over 20 international organizations.
🗂️ The meeting will focus on strengthening international security cooperation. Discussions will cover a broad range of challenges, including terrorism, extremism, transnational crime, drug trafficking, and emerging threats.
🧭 Since 2010, this annual platform has brought together senior security officials to build trust, share expertise, and coordinate efforts on pressing global security issues.
📌 Media accreditation is open until May 20, 2025.
#Shoigu#SecurityCouncil#InternationalMeeting#Moscow2025#GlobalSecurity#Counterterrorism#Multilateralism#CIS#SCO#BRICS#CSTO#EAEU#GlobalSouth