手机号码正则表达式匹配

手机号码正则表达式匹配正则表达式匹配手机号码最近在学习正则表达式,在这里写一个手机号码的匹配表达式手机号码的规则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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JRTPLIB_刘伯温传简介

    JRTPLIB_刘伯温传简介jrtplib是一个基于C++、面向对象的RTP封装库,最新的版本是3.9.1(2011年11月)。为了与RFC3550相兼容,3.x.x版本经过完全重写,现在它提供了一些非常有用的组件,这些组件为构建各种各样的RTP应用程序开发提供了有用的帮助。较旧的2.x版本依然可用,但是不兼容RFC3550。1.特性    jrtplib支持定义于RFC3550中的RTP协议,它使得发送和接

    2022年7月28日
    1
  • ES6基础之——继承extends

    ES6基础之——继承extends一个类可以去继承其他类里面的东西,这里定义一个叫Person的类,然后在constructor里面添加两个参数:name和birthday;下面再添加一个自定义的方法intro,这个方法就是简单地返

    2022年7月1日
    20
  • git命令

    git命令

    2022年3月7日
    38
  • Boltzmann机详解

    Boltzmann机详解基于热力学的随机型神经网络–Boltzmann机1.模拟退火算法我们知道,Hopfield神经网络拥有联想记忆的能力,这也是对生物神经网络的一种模拟。但是,Hopfield神经网络也和BP神经网络一样,有一个致命的缺陷:只能找到局部最优解,而无法沿着梯度上升的方向在全局的角度寻求全局最优解。为了解决这个问题,1983年,Kirkpatrick等提出了模拟退火算法(SA)能有效的解决局部最优…

    2022年7月12日
    12
  • evicted Pod

    evicted PodapiVersion:v1kind:Podmetadata:annotations:checksum/config:8476fd6406a3cc87e5471154d85fd7c50e6a629acda16989a09a5d90937bb5b0cni.projectcalico.org/podIP:192.168.1.233/32creationTimestamp:”2019-09-22T06:26:34Z”generateName:test-ap…

    2022年5月13日
    36
  • 去除winrar广告

    去除winrar广告Winrar是试用版,软件的使用已超过试用期,需购买一个许可才可正常使用。本人告诉你只需简单几步,就能轻松破解Winrar,不需要花钱购买注册。方法:在文件夹选项中去除“隐藏已知文件类型的扩展名”,单击确定。在桌面上新建一个记事本打开将下面代码复制并保存为rarreg.key文件RARregistrationdataFederalAgencyforEduc

    2022年5月12日
    45

发表回复

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

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