Как извлечь в предложении следующие по порядку цифры?

Имеется бот, который парсит сайт и выдает состояние заказа. Номер заказа - 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")
→ Ссылка