手机号码正则表达式匹配

手机号码正则表达式匹配正则表达式匹配手机号码最近在学习正则表达式,在这里写一个手机号码的匹配表达式手机号码的规则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,

大家好,又见面了,我是你们的朋友全栈君。

转载来自: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()

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145039.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python ‘gbk’ codec can’t decode byte 0x80[通俗易懂]

    Python ‘gbk’ codec can’t decode byte 0x80[通俗易懂]Python‘gbk’codeccan’tdecodebyte0x80前段时间,运行得好好的Python代码突然抛出如下错误:Traceback(mostrecentcalllast):File"C:\***\tools.py",line367,in__get_key_from_symline=file.readline()F…

    2025年8月31日
    4
  • 全球NB-IoT发展面临六大挑战

    全球NB-IoT发展面临六大挑战

    2022年3月4日
    36
  • idea 2022 激活码 mac_在线激活2022.03.07

    (idea 2022 激活码 mac)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~40…

    2022年4月2日
    95
  • 【Custom Mutator Fuzz】AFL++自定义突变API「建议收藏」

    【Custom Mutator Fuzz】AFL++自定义突变API「建议收藏」前言其实这篇是临时加进来的,因为下一篇文章是libprotobuf+AFL++的内容,所以写的时候需要使用AFL++自定义突变的API,觉得还是需要单独写一篇API的介绍,一共十一个方法,也不是很多,下一篇文章就不再用大篇幅描述API了~编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦Thanks♪(・ω・)ノPS:文章末尾有联系方式,交个朋友吧~本文链接:模糊测试系列往期回顾:【CustomMutatorFuzz】Libprotobuf+LibFuzzerCustomM.

    2025年11月5日
    3
  • MinGW32和64位交叉编译环境的安装和使用「建议收藏」

    MinGW32和64位交叉编译环境的安装和使用原文出处: CompileGraphicsMagick,Boost,BotanandQTwithMinGW64underWindows764 http://www.kineticsystem.org/?q=node/191安装MSYS从下面的地址下载并运行:mingw-get-inst-20120426.exehttp://so

    2022年4月8日
    246
  • 彻底理解js中的闭包

    彻底理解js中的闭包闭包是js的一个难点也是它的一个特色,是我们必须掌握的js高级特性,那么什么是闭包呢?它又有什么用呢?我们都知道,js的作用域分两种,全局和局部,基于我们所熟悉的作用域链相关知识,我们知道在js作用域环境中访问变量的权利是由内向外的,内部作用域可以获得当前作用域下的变量并且可以获得当前包含当前作用域的外层作用域下的变量,反之则不能,也就是说在外层作用域下无法获取内层作用域下的变量,同样在不同的…

    2022年6月24日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号