写一个正则表达式匹配手机号

日常积累一些东西吧!用正则表达式匹配手机号格式是否正确,在注册或者登陆时经常会使用这个来验证是否格式正确。

# -*- coding: utf-8 -*-
# @Time    : 2018/11/27 23:49
# @Author  : Mat
# @Email   : 2@qq.com
# @File    : re_test.py
# @Software: PyCharm
import re

# 【正则表达式】分析如下:
#
# 手机号都为11位,所以必须限定匹配的数字的位数,通过$来限定以9位数字结尾,
#
# 又因为手机号都以1开头,所以通过^1限定以1开头,
#
# 然后手机号第二位貌似只有3,5,6,7,8,这几个数字,所以通过[3,5,6,7,8]来匹配其中的任一数字,
#
# 最后{9}匹配9个/d。
#
# 【补】:/d 表示匹配数字

def phone_num_test():
    ph = input("请输入你的电话号码:")
    pattern = re.compile('^1[35678]\d{9}')

    num = pattern.match(ph)
    if num:
        print("这是个号码")
    else:
        print("这不是电话的格式")

if __name__ == '__main__':
    phone_num_test()

然后你就可以输入手机号进行验证了,

posted @ 2018-11-28 00:48  a_py  阅读(3048)  评论(0编辑  收藏  举报