как сравнить числа по формату написания в python
это часть блока кода бота планировщика и мне нужно сравнить "date = command[0].lower()" с форматом написания даты (дд.мм), и если верно то код продолжается если нет просьба ввести правильно. Но не нашел информацию как сравнить по формату. Помогите пожалуйста.
блок кода:
@bot.message_handler(content_types=['text'])
def add_task(message):
command = message.text.split(maxsplit=1)
if len(command) > 1:
date = command[0].lower()
*if date == # формат должен быть датой (пример: 01.01)*:
task = command[1]
add_todo(date, task)
bot.send_message(message.chat.id, f'Задача: {task} поставлена на дату: {date}')
else:
bot.send_message(message.chat.id,
'Нужно так (пример): "01.01 доесть салат", попробуйте еще раз (вызовите /add)')
Ответы (1 шт):
Сравнивать формат можно через регулярные выражение, в нашем случае это будет \d{1,2}\d{1,2}.
Что бы сверить дату по регулярному выражению тебе надо вначале импортировать модуль re (import re) и перед выполнением основной программы скомпилировать её (p = re.compile('\d{1,2}\d{1,2}'))
Теперь проверяем на совпадения:
if p.match(date):#date - строка с датой
#твой код
Если же тебе хочется ещё и получить первое и второе число даты, то тогда придётся заменить регулярное выражение на (\d{1,2})\.(\d{1,2}), и код будет выглядеть так:
m = p.match(textDate)
if m:
date = m.group(1)
month = m.group(2)
Вообще советую почитать про регулярные выражения, это очень мощный инструмент https://habr.com/ru/post/115825/