Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
#DOCK/USDT analysis -
#DOCK is in a downtrend, trading below the 200 EMA. The price has broken out of the previous support and shown an impulsive bearish move. Right now, the price is retesting the broken zone. It is expected to reverse from there and continue the bearish momentum. Wait for the break of the $0.02069 level to go short.
TF : 1h
Entry : $0.02069
Target : $0.01935
SL : $0.02153
#DOCK upcoming hot events👇
🆕 New Dock (DOCK) event!
31 March 2023 (or earlier)
Integrate Traceable Creds
🆕 New Dock (DOCK) event!
31 March 2023 (or earlier)
Delegatable Credentials
🆕 New Dock (DOCK) event!
31 March 2023 (or earlier)
Ethereum Bridge Audit
🆕New Dock (DOCK) event!
30 June 2023 (or earlier)
Wallet App Staking
🆕New Dock (DOCK) event!
30 September 2023 (or earlier)
Bridge with Ethereum
#DOCK upcoming hot events👇
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
White Label Mobile Wallet
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
Credentials Builder
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
EVM & Native Chain Comm.
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
V2: Relay Service
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
Private Delegatable Creds
🆕 New Dock (DOCK) event!
31 March 2023 (or earlier)
Integrate Traceable Creds
🆕 New Dock (DOCK) event!
31 March 2023 (or earlier)
Delegatable Credentials
🆕 New Dock (DOCK) event!
31 March 2023 (or earlier)
Ethereum Bridge Audit
#DOCK upcoming hot events👇
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
White Label Mobile Wallet
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
Credentials Builder
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
EVM & Native Chain Comm.
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
V2: Relay Service
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
Private Delegatable Creds
🆕 New Dock (DOCK) event!
31 March 2023 (or earlier)
Integrate Traceable Creds
🆕 New Dock (DOCK) event!
31 March 2023 (or earlier)
Delegatable Credentials
🆕 New Dock (DOCK) event!
31 March 2023 (or earlier)
Ethereum Bridge Audit
#DOCK upcoming Events 👇👇
🆕 New Dock (DOCK) event!
30 September 2022 (or earlier)
Wallet App V0.3
🆕 New Dock (DOCK) event!
30 September 2022 (or earlier)
Mobile App V0.4 Staking
🆕 New Dock (DOCK) event!
30 September 2022 (or earlier)
Relay Service
🆕 New Dock (DOCK) event!
30 September 2022 (or earlier)
DSL Integration
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
Web Wallet
🆕 New Dock (DOCK) event!
31 December 2022 (or earlier)
Integrate Anonymous Creds