Регулярные выражения, и как их правильно использовать?

Моя задача получить сообщение в телеграмм, и прогнать его через фильтр. Нужно найти в сообщение комбинацию чисел формата 68362|9999999|1|3 Я знаю что в начале всегда 5 чисел, после так же всегда 7, дальше 1 и дальше так же 1 число.

Я реализовал такой код:

@client.on(events.NewMessage)
async def reaction(event):
    chat = await client.get_input_entity(event.message.from_id.user_id)
    message = event.message.message
    filt = re.findall(r"\d{5}|\d{7}|\d{1}|\d{1}", message, flags=re.M)
    if filt:
        print(f"Комбинация поймана!\nДанные: {filt[0]}|{filt[1]}|{filt[2]}|{filt[3]}")

client.run_until_disconnected()

Но код ловит все сообщения где есть хоть какие то числа, будь то 122121212121121, код просто выведет мне чушь. Я не могу понять как правильно построить фильтр что бы ловить заданную комбинацию. Так же я пробовал реализовать вот так:

\d{5}\w\d{7}\w\d{1}\w\d{1}

Но все так же безуспешно


Ответы (2 шт):

Автор решения: Баба Дук

Проблему решил изменив маленькую w на заглавную. Получил такой фильтр: \d{5}\W\d{7}\W\d{1}\W\d{1} работает без нареканий

→ Ссылка
Автор решения: Сергей Кох

Проблему можно решить просто экранировав спецсимвол "|", как сказано в комментариях.

import re

message = "68362|9999999|1|3"
#message = "68362999999913"
filt = re.findall(r"\d{5}\|\d{7}\|\d\|\d", message)
if filt:
    print(f"Комбинация поймана!\nДанные: {filt[0]}")
→ Ссылка