python正则表达式 第三章

<[^/][^>]*[^/]>确实可以避免匹配到<br/>这样的字符,但是又会放过<u>这样的字符,为什么呢,刚开始还没想明白,其实是因为<[^/][^>]*[^/]>这样的书写方式,其实最少要求的字符必须有三个才会匹配的,而u却只有一个字符。

括号的使用 15位和18位身份证的匹配

 

>>> idCardRegex = r"^[1-9]\d{14}(\d{2}[0-9x])?$"

#这段正则表达式先匹配1-9其中的一个数字,因为身份证开头不能是零,之后匹配14个数字,这样就构成15位的身份证,另外三个则是用括号括起来整体出现的,要不不出现,要不一起只出现一次,相当于几个字符已经被捆绑起来了

>>> re.search(idCardRegex,"110101198001017032") != None

True

>>> re.search(idCardRegex,"11010119800101703x") != None

True

>>> re.search(idCardRegex,"110101198001017") != None

True

>>> re.search(idCardRegex,"11010119800101x") != None

False

多选结构,一般是由()和|组成,但是如果没有括号出现,依然为多选结构,但有时候也会出现错误

多选结构可以应对多种情况的出现,下面的示例是匹配0-255之间的字符串

>>> partRegex = r"^([0-9]|[0-9]{2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"

>>> re.search(partRegex, "0") != None

True

>>> re.search(partRegex,"98") != None

True

>>> re.search(partRegex,"01") != None

True

>>> re.search(partRegex,"001") != None

False

>>> partRegex = r"^([0-9]|[0-9][0-9]{2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"

>>> re.search(partRegex,"001") != None

True

同时,也可以匹配特殊的时间以及手机电话号码的匹配

 

一般情况下,匹配完成之后,匹配结果默认存在编号为0的分组

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值