首页 > 解决方案 > Python 中的正则表达式。检查电话号码的有效性

问题描述

我正在尝试构建一个逻辑来检查 Python 中电话号码的有效性。如果用户输入任何以+91 或91 开头并包含从6 -9 开始的10 位数字的手机号码。它应该是一个有效的电话号码。我尝试了下面的代码,但它给了我一个错误:错误:位置 9 的不平衡括号任何帮助将不胜感激。例如:电话号码应具有以下任何格式: +917162377291 916162377291 +918162377291 +919162377291 如果用户输入上述格式的任何数字,则第 91 或 +91 后的第一个数字应在 {6,7, 8 或 9} 后跟 9 位数字应该是有效的电话号码。

import re 
s=input('Enter the phone number:')
m=re.fullmatch('^\(+91|91)[6-9]d{9}',s)
if m!=None:
    print('Correct Number')
else:
    print('Incorrect Number')

标签: regex

解决方案


该错误是由转义\(匹配(字符而不是组的一部分引起的。

但是匹配这些格式,您不需要分组机制,也不必将 9 和 1 设为可选,只需+

^\+?91[6-9]\d{9}$

正则表达式演示

s=input('Enter the phone number:')
m=re.fullmatch('\+?91[6-9]\d{9}', s)
if m!=None:
    print('Correct Number')
else:
    print('Incorrect Number')

推荐阅读