大家好,又见面了,我是你们的朋友全栈君。
转载来自:https://blog.csdn.net/weixin_43893679/article/details/108046667
正则表达式匹配手机号码
最近在学习正则表达式,在这里写一个手机号码的匹配表达式
手机号码的规则
- 11位,第一位一定是1
- 第二位和第三位根据不同运营商的号码段有所区别,只有有限的组合是合法的手机号码
- 后8位可以是任意数字
表达式
^1(3[0-9]|5[0-3,5-9]|7[1-3,5-8]|8[0-9])\d{8}$
解释:
^:代表起始,即手机号码只能以1为开头
3[0-9]:代表手机号码第二位可以是3,第三位可以是0-9中任意一个数字
5[0-3,5-9]:代表手机号码第二位也可以是5,第三位是0-3和5-9中的任意一个数字
在这里,以3开头的,以5开头的,以及以8开头的三种情况,我们用“|”来将他们隔开
\d:匹配一个数字字符,等价于 [0-9]
$:终止符,代表不可以再有第12位了
测试用例
import re,sys#导入正则模块
def example():
phone_numbers_true=['13912345678','15912345678','17212345678','18212345678']
phone_numbers_false=['124344534543','4454543534','1234521345']
for i in phone_numbers_true:
ret=re.match(r"^1(3[0-9]|5[012356789]|7[1235678]|8[0-9])\d{8}$",i)
if not ret:
print("测试用例"+i+"未通过校验,程序终止,该正则表达式不正确!")
sys.exit()
for i in phone_numbers_false:
ret=re.match(r"^1(3[0-9]|5[012356789]|7[1235678]|8[0-9])\d{8}$",i)
if ret:
print("测试用例"+i+"未通过校验,程序终止,该正则表达式不正确!")
sys.exit()
print("全部测试用例通过")
example()
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145039.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...