您的位置:首页 > 编程语言 > Python开发

手机号码,邮箱,身份证号码简单正则表达式匹配

2018-01-13 18:02 501 查看
手机号码的正则表达式

import re
pattern = "^1[3-8]\d{9}$"
str = "13667865555"
res = re.findall(pattern,str)
print(res)
邮箱的正则表达式--随意邮箱

pattern = "^[a-z0-9][a-z0-9_]+@[a-z0-9_]+\.[a-z0-9_]+"
str = "2345sdsaf__sa@sss.comss"
res = re.findall(pattern,str)
print(res)
身份证号码的正则表达式--仅格式--没有验证作用

分析:

第1位: 1-9  不能以0开头  [1-9]

第2-5位: 0-9 随意数字  \d{5}

年-第1位: 1或者2   [12]

年-第2-4位: 0-9 000-999  [0-9]{3}

月 : 第1个为0时第2个为1-9,第1个为1时第2个为0-2   (0[1-9])|(1[0-2])

日 : 第1个为0时第2个为1-9,第1个为1时第2个为0-9,第1个为2时第2个为0-9,第1个为3时第2个为0-1  (0[1-9])|([12]\d)|(3[01])

最后四位: 前3位: 0-9 最后1位: 可以为X,x,0-9   X|x|\d

pattern =r"^([1-9]\d{5}[12]\d{3}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(X|\d))$"
idNum = "350124198310131229"
res = re.findall(pattern,idNum)
print(res)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python
相关文章推荐