Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
#DEGO/USDT analysis :
#DEGO is currently in a downtrend, trading below its 200 EMA and encountering resistance. This suggests a potential continuation of the downtrend, for short entry opportunity wait for pullback.
TF : 4h
Entry : $1.537
Target : $1.270
SL : $1.712
#DEGO/USDT analysis :
#DEGO is currently in an uptrend, consistently reaching new highs while trading above the support zone. Following a strong impulsive move, the price has undergone a correction phase. It is now anticipated to bounce from this level and continue rising, aiming to test previous highs. For a long entry, wait for a breakout above the $1.996 level.
TF : 4H
Entry : $1.996
Target : $2.490
SL : $1.757
#DEGO/USDT analysis :
#DEGO is currently in an uptrend, forming higher highs and higher lows above the 200 EMA. The price is presently consolidating above the support zone and is expected to bounce from there to sustain its bullish momentum and test the previous swing high.
TF : 1h
Entry : $1.640
Target : $1.696
SL : $1.608
🚀🚀100% Huge Profit on #DEGO/USDT as it has hit all the profit target - The trade has been closed
👁🗨Contact @primemod to enter the premium group & make daily gains