Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
POCO M7 Pro 5G, Redmi Note 14 - China - OS3.0.305.0.WOQCNXM (Android 16)
📆2026/04/27 #release📱#beryl
📥Recovery ROM
📝Changelog:
[System]
Updated the security patch to August 2025. Increased system security.
🔗@xiaomiui | @miui_download | @hyperosfirmware | MemeOS Updates | XimiTime
Paranoid Android - Unofficial | Android 16 | Nothing Phone (2)
📔Details:
• Version: Beryl (Alpha)
• Device: #Pong
• Updated: 19/12/25
🔽 Download: Here
🆘 Bug Reports: Here
🔖Tags: #AOSPA#Unofficial#Baklava#CLO#NothingPhone2#Beryl
✨Changelogs:
- Based on current QSSI16 and V4.0-251119-1654
- Improvements to performance and system stability
- While feedback is appreciated, please do not explicitly mention me, I can read chat on my own thanks
⚙️Installation:
1. fastboot flashing unlock_critical (skip if already unlocked)
2. Execute this for flashing the ROM:
fastboot -w
fastboot update path/to/aospa zip
3. Wait for boot to finish
❗️Known bugs:
- UW camera does not show up in aperture
- Left volume panel isn't aligned in landscape
✍️ Note:
- Firmware is included. No need to flash seperately.
- Clean flash is recommended
👤 Dev: @gotenksIN
🔔Updates : @NothingPhone2Updates
💬Chat : @NothingPhone2