Небольшой трик с регулярными выражениями который редко вижу в чужом коде.
Допустим, вам нужно распарсить простой текст и вытащить оттуда пары имя+телефон. Вернуть всё это надо в виде списка словарей. Возьмем очень простой пример текста.
>>> 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
#Repo-PowerBI
Cumpliendo las peticiones de algunos de ustedes hemos creado un 💫Nuevo grupo de PowerBI, donde estaremos compartiendo cursos, y libros.
Pueden unirse en el enlace de abajo👇
🔗Link
-----
Main channel:@repo_science
Coupons:@freecoupons_reposcience
-----
Reaction Saver
#repo: https://github.com/xditya/ReactionSaver
- React to any message in DMs to save to your configurable LOG_CHAT
- Good for messages or files sent in DMs with privacy enabled (forwards turned off)
- Steps to set up are available here
Star the repo if it helped :)
~ @BotzHub
🎉 Just pushed a new repository to GitHub, been a while :)
ImageTools
#repo: https://github.com/xditya/ImageTools
a python script to manipulate images
- Resize images to exact pixel dimensions (width × height)
- Auto compress images to target file sizes with optimal quality.
- Add noise to ensure the image size meets your requirements.
- Works with JPEG, PNG, and WebP formats.
Makes applying for online examinations easier - no more visiting random websites to alter image dimensions and sizes!
Do leave a ⭐️ if the repo helped :)
~ @BotzHub
Presenting @GeminiTalkBot!
Yes, that's me releasing a bot after a long time lol
#repohttps://github.com/xditya/GeminiChatBot (do give a 🌟)
An AI ChatBot and problem solver, using Google's Gemini AI Model.
- remembers conversations for a smoother problem solving experience, without leaving telegram!
- utilizes Gemini's full capabilities in text generation.
- and more, idk what to add here 🙂
Follow me on GitHub & help me reach 500 followers!
https://github.com/xditya
~ @BotzHub
WhatsApp Media to Sticker
#repo - https://github.com/xditya/WhatsAppUtilitiesBot (do give a ⭐)
- A WhatsApp userbot, currently aimed at converting media to stickers, from within WhatsApp!
You can find a sample bot in the comments of this post, but I'd recommend hosting one yourself, to prevent bans!
Let me know if you have ideas to implement in this bot 😄
Heavily inspired by J Projects
~ @BotzHub
😇 Just made a link shortener website, https://short.xditya.me
🔥 It's opensource, #repo: https://github.com/xditya/WebShortener(do give a ⭐️) and has an API endpoint!
🌚 Powered by 👩💻
👀 Please give your feedback, this is my first working website
~ @BotzHub
🆕PresentingGetRestrictedMessages!
✈️ Deploy your own userbot to copy messages from public and private telegram chats with forward restrictions enabled!
🔥#repo - https://github.com/xditya/GetRestrictedMessages
React to this message with "🌚" if you want a video tutorial on deploying it!
😎 Let me know your opinions in the comments! Star the repository, it encourages me to make more open-source projects :)
~ @BotzHub
Presenting @TGdetailsBot
#repo - https://github.com/xditya/TGdetailsBot
- Get the message data in a telegram message.
- Get chat ID, or forwarded from (channel/user) ID.
- "Interactive" bot.
- Supports clones (read "help" of the bot to know more)!
~ @BotzHub
Deployyour own version of@ChannelActionsBot!
Tutorial - https://youtu.be/hjxfJtk5ZWs
#repo - https://github.com/xditya/ChannelActionsBot
Like the video!
~ @BotzHub
@PexelsSearchBot
#repo🌐 - https://github.com/xditya/PexelsBot
- Inline bot to search images from Pexels.
- Open-source, made in ts 👌
- Use the bot inline, to search and send high quality images from pexels.com.
~ @BotzHub
@MDiskLinksRoBot
🌐#repo - https://github.com/xditya/mdiskDownloadLinks
- Generate direct download links from any MDisk.me link.
- My first bot in TS 👩🦯
- Please do 🌟 the repository!
~ @BotzHub
@TheEmailBot
🌐#repo - https://github.com/xditya/Mailbot
- Generate temporary emails from within telegram.
- Receive mails in that temp mail directly in the bot, with attachments, if any.
- @TheEmailBot also supports custom as well as random email addresses.
Do star the repository⭐️
Also, thanks for 12k members in this channel! ❤️
~ @BotzHub