Для проверки мобильных номеров, таких как (111)-111-1111
Я не думаю, что вам нужно слишком сложное и неправильное регулярное выражение, подобное этому ([(+*)]\d{3}[(+*)][a-]\d{3}[a-]\d{4})
Даже если вы установите начальный якорь ^
и конечный якорь $
, он будет проверять следующеедействительные номера мобильных телефонов, которые будут правильными,
)111(a111a1111
*111+-111-1111
Проверьте эту демонстрацию, чтобы увидеть, как она допускает недопустимые номера мобильных телефонов
Для проверки номера мобильного телефона, подобного этому (111)-111-1111
, вы можете просто использовать следующее регулярное выражение,
^\(\d{3}\)-\d{3}-\d{4}$
Демонстрация для правильной проверки мобильных номеров
Дайте мне знать, если вы хотитеразрешить любые изменения этого (111)-111-1111
номера мобильного телефона в качестве действительного.
Кроме того, для проверки текста следует использовать функцию match
вместо findall
, где позже используется для извлечения информации из текста и бывшегодля сопоставления текста на действительность.
Вот пример кода Python, который показывает, как вы должны проверить свои номера мобильных телефонов,
import re
arr = ['(111)-111-1111','(((((111)-111-1111',')111(a111a1111','*111+-111-1111']
for s in arr:
if (re.match(r'^\(\d{3}\)-\d{3}-\d{4}$', s)):
print(s, ' --> is Valid mobile number')
else:
print(s, ' --> is Not Valid mobile number')
Печать,
(111)-111-1111 --> is Valid mobile number
(((((111)-111-1111 --> is Not Valid mobile number
)111(a111a1111 --> is Not Valid mobile number
*111+-111-1111 --> is Not Valid mobile number