Как извлечь в предложении следующие по порядку цифры?
Имеется бот, который парсит сайт и выдает состояние заказа. Номер заказа - 9 цифр.
Каким образом можно извлечь 9 цифр по порядку в предложении, например:
"Найди мне номер заказа 123456789"
Если просто ввести 123456789 - функция отрабатывает, регулярка ловит 9 цифр и передает в функцию.
А как извлечь эти же 9 цифр (а их должно быть именно 9) из предложения, возможно разделенного запятыми, ума не приложу.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Пример:
In [115]: msg = "Найди мне номер заказа 123456789"
In [116]: re.findall(r"\b(\d{9})\b", msg)
Out[116]: ['123456789']
UPD:
def get_order_num(msg: str) -> str:
r = re.findall(r"\b(\d{9})\b", msg)
if r:
return r[0]
return None
тесты:
In [129]: get_order_num("Найди мне номер заказа 123456789")
Out[129]: '123456789'
In [130]: get_order_num("Найди мне номер заказа 12345")
In [131]: get_order_num("blah-blah")