Проверка номера телефона через регулярные выражения

У меня есть строка, в которой хранится номер телефона. Мне надо проверить, соответствует ли данная строка регулярному выражению

^((\+?7|8)[ \-] ?)?((\(\d{3}\))|(\d{3}))?([ \-])?(\d{3}[\- ]?\d{2}[\- ]?\d{2})$

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

Автор решения: Shift
import re
re.match(r'^((\+?7|8)[ \-] ?)?((\(\d{3}\))|(\d{3}))?([ \-])?(\d{3}[\- ]?\d{2}[\- ]?\d{2})$', number)
→ Ссылка
Автор решения: Andrew Holovko

У меня есть строка, в которой хранится номер телефона. Мне надо проверить, соответствует ли данная строка регулярному выражению

я немного прокачал ваше регулярное выражение, суть вы поймёте

import re
number = '74957556983'
result = re.match(r'^(\+7|7|8)?[\s\-]?\(?[489][0-9]{2}\)?[\s\-]?[0-9]{3}[\s\-]?[0-9]{2}[\s\-]?[0-9]{2}$', number)
print(bool(result))  # True, False
→ Ссылка