Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
#LRC/USDT analysis :
#LRC has retraced to the previous resistance zone, which is now acting as support for the price. From this level, bullish momentum is expected, with the previous swing high serving as the target level for upward movement.
TF : 1D
Entry : $0.1700
Target : $0.3338
SL : $0.1300
#LRC/USDT analysis -
#LRC is currently experiencing a downtrend and is trading below the 200-day Exponential Moving Average (EMA). The price is undergoing a pullback and is anticipated to test the resistance zone close to the 200 EMA shortly before potentially declining further to retest the previous lows.
TF : 4h
Entry : $0.1890
Target : $0.1601
SL : $0.1994
#LRC has a symmetrical triangle pattern on Daily time frame,in the case of breakup we will see another huge pump again 🚀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
#LRC bounced back from the Demand zone also touched the curve on Weekly time frame,we need a bullish momentum to breakup this pattern 🚀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️