Функция sub в regex может принимать функцию в качестве аргумента repl.
📄 Из документации:
If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string.
То есть для каждого совпадения будет вызвана функция для вычисления замены вместо замены на одну и ту же строку для всех совпадений.
Иными словами, для замены разных совпадений на разные строки не потребуется запускать re.sub() много раз для каждой строки замены. Достаточно определить функцию, которая вернёт строку для каждого из совпадений.
Описание слишком запутанное🤔, давайте лучше рассмотрим на простом примере:
Создаем карту замены. То есть какие строки на какие требуется менять.
remap = {
'раз': '1',
'два': '2',
'три': '3',
'четыре': '4',
'пять': '5',
}
Пишем функцию поиска строки для замены. Единственным аргументом будет объект re.Match.
Используя данные этого объекта мы вычисляем замену on-the-fly!
def get_str(match: re.Match):
word = match.group(1)
return remap.get(word.lower()) or word
Пример текста.
text = '''Раз Два Три Четыре Пять
Вместе будем мы считать
Пять Четыре Три Два Раз
Мы считать научим вас
'''
Теперь запускаем re.sub и вместо строки замены (repl) подаём имя функции.
(Данный паттерн ищет отдельные слова в тексте)
>>> print(re.sub(r'(\w+)', get_str, text))
1 2 3 4 5
Вместе будем мы считать
5 4 3 2 1
Мы считать научим вас
Думаю, достаточно наглядно 🤓
#libs#regex
🆕Appointments here!
We glad to present you a 1st version of Appointment system. This journey was challenging, interesting and took 4 months. We faced complex challenges where we had to create a new approach.
🌐 Now you can discover all kind of businesses in one mini app with convenient map. Your country, your service, your time!
🛍 We know that our users want to provide their customers with only the best service that will work 24/7 without interruption. All on one page and app. Provide services and book services from others. The era of Telegram appointments is now open!
And don't forget, almost all new businesses will be available for viewing and researching by thousands of Callegram users. Don't miss the opportunity to be the first to create a business!
App | #Callegram#MiniApps#Appointments
🔜 We're at the finish line!
This is what the booking process will look like from the client's side. Choose the time, master and service that is convenient for YOU 👍
App | #Callegram#MiniApps#Appointments
✏️Find a Cool Service Directly in @CallegramBot? Why Not?
We’re almost here with a new huge update — Appointments.
Our users will be trying to find an awesome services directly in the mini app.
We’re doing our best!
App | #Callegram#MiniApps#Appointments
🚨AI Takes Your Job
And this is awesome! Today we’ve tried our first version of AI Appointments. And it works really great!
In the near future your clients will chat with you about services and AI will assist you with confirming appointments.
Different languages, text and voice messages. No more annoying work!
Be ready for the feature right now. Create your business
🔗t.me/CallegramBot/subscribe_business
App | #Callegram#MiniApps#AI#Appointments
🔜Appointments In Callegram
This is a big part of our service and we want to share with you a first sneak peak.
⚠️ This feature is not available now. Check our news below.
Users. You will get an option to make an appointment directly in Telegram for your favorite services. You don’t need to make a call or visit the service location. Just few clicks and you will get what you want + reminders about upcoming service.
Businesses. Setup your businesses, locations, specialists, their schedules and services. Automate your handwork and launch your services in Telegram within a few minutes.
Marketplaces. If you want to use our Callegram system in your flow and give your merchants opportunity to create an appointment schedule, please contact @krimon
👀 Stay tuned and check the news in our channel
#MiniApps#Telegram#Business#Appointments
🤫Page Of Businesses
Users, are you ready to make appointments in a few clicks?
Businesses, are you ready to provide your services seamlessly?
🙂 Stay tuned
#Appointments#MiniApps#Business#CallegramBusiness
⚙️We've automated everything for you
Now your business' schedule is sent automatically if the person writes the words ‘Book’, ‘Appointment’
To activate the function:
1) Create a business with services;
2) Pay subscription;
3) Add @CallegramBot in Telegram settings in "Telegram Business - ChatBots".
Now your customers will get a specific message with option to make an appointment.
Don't waste time on routine, get down to business. Callegram optimises your work 💰
App | #Callegram#MiniApps#Appointments#TelegramBusiness