Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
#LPT is consolidating within a falling wedge pattern and is currently trading above the support trendline.
A bounce from this level is possible, while a breakout of the pattern would confirm bullish momentum.
Conversely, a breakdown below the wedge could lead to further correction.
#LPT/USDT analysis :
#LPT is currently experiencing a bearish trend, trading below the 200 Exponential Moving Average (EMA). The price has encountered resistance at the 200 EMA and has broken below the established trendline, suggesting further downward momentum. A decline to test the swing low level is anticipated.
TF : 2h
Entry : $5.423
Target : $4.883
SL : $5.740
#LPT/USDT analysis :
#LPT has broken down and retested the previous support zone, which is now acting as resistance for the price. It is anticipated that the price will resume its bearish momentum from the current level and test lower levels. For a short entry, it is advisable to wait for a price retracement.
TF : 1H
Entry : $13.76
Target : $12.78
SL : $14.36
#LPT/USDT analysis :
#LPT is currently consolidating sideways in a correction phase above the 200 EMA. The price is likely to test the support zone and then bounce back from there to test the resistance zone.
TF : 1H
Entry : $14.60
Target : $15.30
SL : $14.25