前言:在使用python开发中,有时候经常需要对一些常用的字段进行匹配校验;例如:邮箱、手机号、身份证号、域名、邮编、空格处理等等,这个用re模块的正则表达式就可以很好校验出来;本篇教程就来说说常用6种正则表达式表示方法环境:Python3、sublime text31、Email地址1)说明:在网站注册页面上常常会出现输入用户名、密码及Email等,当输入的邮箱不含“@”符号,网页就会提示输入Email地址错误,这个处理过程其实就是一个正则表达式的处理,下面是我们对这些特殊需求的表达式进行总结:2)使用方法:^\w+([-+.]\w+)*@\w+[-.]\w+*\.\w+([-.]\w+)*$import re
x="[email protected]"
y="zhangsangmail.com"
z="zhangsangmail"
xr=re.match('^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*#39;,x)
print('匹配正确:',xr.group())
yr=re.match('^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*#39;,y)
print('匹配不正确:',yr.group())
zr=re.match('^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*#39;,z)
print('匹配不正确:',zr.group())2、域名1)说明:我们经常看到的域名是baidu.com,csdn.net,10086.cn等就是所谓的域名2)使用方法:'(?i)^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$import re
x="www.baidu.com"
y="www.csdn.net"
z="www.10086.cn"
t="aabbcc.d"
xr=re.match('(?i)^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}#39;,x)
print('匹配正确:',xr.group())
yr=re.match('(?i)^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}',y)
print('匹配正确:',yr.group())
zr=re.match('(?i)^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}#39;,z)
print('匹配正确:',zr.group())
tr=re.match('(?i)^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}#39;,t)
print('匹配正确:',tr.group())
3、手机号码1)说明:中国的手机号码为11位,并且一般是以12、14、15、17、18等开头,因此可以确定的是开头为1,第二位为3,4,5,7,8等2)使用方法:1[3458]\\d{9}或^(13\d|14[5|7]|15\d|166|17[3|6|7]|18\d)\d{8}$import re
x="15888889999"
y="12345671189"
xr=re.search("^(13\d|14[5|7]|15\d|166|17[3|6|7]|18\d)\d{8}#34;,x)
yr=re.search("^(13\d|14[5|7]|15\d|166|17[3|6|7]|18\d)\d{8}#34;,y)
print("正确手机号:",xr.group())
print("不正确的手机号:",yr.group())4、身份证号1)说明:一般身份证号为15位或18位,15位是以xxxxxxYYMMddxxx形式出现,前六位表示地区,YY表示年份,MM表示月份,dd表示天数,xx表示顺序码,最后的x表示校验码2)使用方法:/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$import re
x="360722195511292166"
y="3602011959022018889"
xr=re.search("/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)#34;,x)
yr=re.search("/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)#34;,y)
print("正确身份证号:",xr.group())
print("不正确的身份证号:",yr.group())5、邮政编码1)说明:中国的邮政编码一般是6位2)使用方法:[1-9]\d{5}(?!\d)import re
x="12332 233433 34565 532336 "
xr=re.findall('[1-9]\d{5}(?!\d)',x)
print ("邮政编码匹配:",xr)6、空白处理1)说明:在文本处理中,常常需要进行删除空白行、删除行首尾空白等操作2)使用方法:空白行的正则表达式为\n\s*\r,首尾空白字符的正则表达式为^\s*|\s*$或(^\s*)|(\s*$)import re
x=" 好好学习,天天向上,很重要!!"
y="学习python "
xr=re.sub('\s*|\s*','',x)
yr=re.sub('(^\s*)|(\s*$)','',y)
print ("开头空格处理:",xr)
print ("结尾空格处理:",yr)
本文出自快速备案,转载时请注明出处及相应链接。