Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
#QI/USDT analysis :
#QI has broken out and successfully retested the previous swing high resistance. The price is currently finding support at this zone. It is anticipated that the price will bounce back from here and test previous highs.
TF : 1W
Entry : $0.01650
Target : $0.03380
SL : $0.01080
#QI
https://www.binance.com/en/trade/QI_USDT
Buying Zone 195-200
Sell
🤑 220
🤑 250
🤑 250-280
🤑 280-310
🚀 310-350 & above
Currently facing R if broken x2
we can expect
Bullish above 178🔼
Death zone below 178🔽
#QI👈
Call given here
Hit 52 fourth selling range
Target 1 to 4 done ✅
57% safe profit
If you invested 1 btc it's now 1.57 btc now 🤑🤑
Signal before pump @ low level
Always trade with us for max profit 😊🤑💃
We are best pump tracker 🤑
👀#ATA#FIO#GTC#NTRN#PHB#QI#RDNT#BNB Binance Will Extend the Monitoring Tag to Include ATA, A2Z, FIO, GTC, NTRN, PHB, QI & RDNT on 2026-03-13 RDNTUSDT: 0.00571 #Binance#announcement