Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
🪙Big news coming this Friday!
Get ready to find out the official TGE date for MemeFi Stay tuned for the announcement!
👉Check out the tweet on X
🔔Subscribe👉Join MemeFi
⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️
#MemeFi#TGE#CryptoUpdate
Crypto Market Update – Today
• BTC: ~$108K
• ETH: ~$3.8K
• SOL: ~$187
• TON: ~$2.98
With Bitcoin holding firm above the six-figure mark, Ethereum steady, Solana making moves, and Toncoin continuing as a notable altcoin — these are the major ones to keep on your radar.
🔍 Note: Prices update rapidly. Always verify live data and use proper risk management.
#crypto#bitcoin#ethereum#solana#toncoin#cryptoupdate
🌟 Exciting news! SingSing Mini App has launched Version 2! 🚀
Enjoy these amazing new feature:
🚨Claim RUBY: absolutely gas-free! 🎉 NO FEES, JUST RUBY!
⚠️ Remember, you only need to connect your wallet when minting tokens on-chain and you will soon be able to use RUBY in various games and projects within the SingSing ecosystem.
Also, a friendly reminder: Ruby token halving starts at 14:00 UTC. ⏰
Don't miss out on these upgrades and make the most of your SingSing experience!
#SingSingClub#RubyToken#CryptoUpdate
🌐Major News: BlackRock Grabs 11,500 #BTC Amid Market Dip.
BlackRock acquires a substantial 11,500 Bitcoin during the recent market dip after launching its spot Bitcoin ETF.
This acquisition is noteworthy, as it accounts for approximately 13 days' worth of #Bitcoin production, surpassing the daily issuance of 900 BTC.
#CryptoUpdate#BlackRock#BitcoinPurchase#CryptoSignals
-
Crypto GALAXY
🌐 Breaking News: BlackRock Secures 11,439 $BTC💰 Valued at Over $497 Million for Its Spot #Bitcoin ETF.
#BitcoinNews#BlackRock#CryptoETF#CryptoUpdate
-
Crypto GALAXY
🚨 SingSing Mini App Version 2 Update! 🚨
Here's what's new:
The RUBY in the "RUBY Balance" section is now off-chain RUBY, which you can claim completely gas-free! 🎉
1️⃣When you click the "Check Mission" button below the RUBY Balance Section, you'll see a "Mint" button. Hit "Mint" to convert your off-chain RUBY into on-chain RUBY. 🔄
2️⃣Scroll down to your Token List. The RUBY displayed here is your on-chain RUBY balance. After minting, your RUBY from the RUBY Balance section will move to this Token List balance. 💎
3️⃣With this new version, you can earn more RUBY with lower costs. Make the most of it and start stacking up RUBY for upcoming events with SingSing and our partners! 🚀
#SingSingClub#RUBYToken#CryptoUpdate#Version2