本文实例讲述了Python实现随机生成手机号及正则验证手机号的方法。分享给大家供大家参考,具体如下:
依据
根据2017年10月份最新的手机号正则进行编码, 正则如下:
(13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8}
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# -*- coding: utf-8 -*- import random def create_phone(): # 第二位数字 second = [ 3 , 4 , 5 , 7 , 8 ][random.randint( 0 , 4 )] # 第三位数字 third = { 3 : random.randint( 0 , 9 ), 4 : [ 5 , 7 , 9 ][random.randint( 0 , 2 )], 5 : [i for i in range ( 10 ) if i ! = 4 ][random.randint( 0 , 8 )], 7 : [i for i in range ( 10 ) if i not in [ 4 , 9 ]][random.randint( 0 , 7 )], 8 : random.randint( 0 , 9 ), }[second] # 最后八位数字 suffix = random.randint( 9999999 , 100000000 ) # 拼接手机号 return "1{}{}{}" . format (second, third, suffix) # 生成手机号 phone = create_phone() print (phone) |
运行结果
13937342780
15835720604
14589505530
...
验证 (使用正则验证)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# -*- coding: utf-8 -*- import random import re def create_phone(): # 第二位数字 second = [ 3 , 4 , 5 , 7 , 8 ][random.randint( 0 , 4 )] # 第三位数字 third = { 3 : random.randint( 0 , 9 ), 4 : [ 5 , 7 , 9 ][random.randint( 0 , 2 )], 5 : [i for i in range ( 10 ) if i ! = 4 ][random.randint( 0 , 8 )], 7 : [i for i in range ( 10 ) if i not in [ 4 , 9 ]][random.randint( 0 , 7 )], 8 : random.randint( 0 , 9 ), }[second] # 最后八位数字 suffix = random.randint( 9999999 , 100000000 ) # 拼接手机号 return "1{}{}{}" . format (second, third, suffix) # 生成手机号 phone = create_phone() print (phone) # 正则 reg = re. compile ( "(13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8}" ) print ( "Test passed!" if reg.match(phone) else "Test failed!" ) |
验证结果
18662182464
Test passed!15896505277
Test passed!14952715286
Test passed!...
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/xiaobuding007/article/details/78726833