Получение аргумента после сообщения telebot python
Можете пожалуйста подсказать как сделать получение аргумента(в моём случае числа) после ввода сообщения. Я хочу сделать так, что бы пользователь писал например "Привет %число сообщений от бота(например 5)%" Пока получается так:
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
if message.text == "Привет":
for i in range():
bot.send_message(message.chat.id, "Привет")
Но я не знаю как получить число после сообщения. Надеюсь на помощь, потому что я в этом деле новичок
Ответы (2 шт):
Автор решения: oleksandrigo
→ Ссылка
Примерно так
@bot.message_handler(func=lambda msg: msg.text.startswith("Привет"))
def get_text_messages(message):
for i in range(int(message.text.split()[1])):
bot.send_message(message.chat.id, "Привет")
Автор решения: gil9red
→ Ссылка
Можно проверять регуляркой, например:
print(RE_HI_NUMBER.search('Привет 9').group(1))
# 9
print(RE_HI_NUMBER.search('Привет 991!').group(1))
# 991
print(RE_HI_NUMBER.search('Привет!!!'))
# None
В боте попробуем найти по регулярке и используем число из сообщения, иначе только один раз напишем:
import re
RE_HI_NUMBER = re.compile(r'Привет (\d+)', flags=re.IGNORECASE)
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
if message.text == "Привет":
m = RE_HI_NUMBER.search(message.text)
number = int(m.group(1)) if m else 1
for i in range(number):
bot.send_message(message.chat.id, "Привет")