正则表达实例

推荐博客

1


import re
s='1021533940@qq.com'
r = re.findall('^\d{9,11}@(?:qq|pp|aa)\.(?:com|sina|cn)$',s)
print r

['1021533940@qq.com']

注:使用了非捕获组(?:xx|yy)

2


import re
s='1021533940@qq.com'
r = re.findall('^(\d{9,11}@(qq|pp|aa)\.(com|sina|cn))$',s)
print r

[('1021533940@qq.com', 'qq', 'com')]
注:使用了捕获组(),编号规则是以“(”从左到右出现的顺序,从1开始进行编号。通常情况下,编号为0的组表示整个表达式匹配的内容。

3


import re
s='1021533940@qq.com'
r = re.findall('^102|com$',s)
print r

['102', 'com']
注:^ $ 匹配首尾,当一个字符串的某一子串具有多种可能时,采用分支结构来
匹配,“|”表示多个子表达式之间“或”的关系,“|”是以()限定范围的,如果在
“|”的左右两侧没有()来限定范围,那么它的作用范围即为“|”左右两侧整体。

4


import re
s='1021533940@qq.com'
r = re.findall('^(102|com)$',s)
print r

[]
注:当^ $同时存在时要匹配的为中间内容必须满足的形式,所以为空

5.


import re
s='aa<div>test1</div>bb<div>test2</div>cc'
r = re.findall('<div>.*?</div>',s)
print r

['<div>test1</div>', '<div>test2</div>']
注:此为非贪婪
正则表达式二采用的是非贪婪模式,在匹配到第一个“</div>”时使整个表达式匹
配成功,由于采用的是非贪婪模式,所以结束匹配,不再向右尝试,匹配结果为
“<div>test1</div>”。

6


import re
s='aa<div>test1</div>bb<div>test2</div>cc'
r = re.findall('<div>.*</div>',s)
print r
['<div>test1</div>bb<div>test2</div>']

注:此为贪婪
在匹配到第一个“</div>”时已经可以使整个表达式匹配成功,但是由于采用的是
贪婪模式,所以仍然要向右尝试匹配,查看是否还有更长的可以成功匹配的子串,
匹配到第二个“</div>”后,向右再没有可以成功匹配的子串,匹配结束,匹配结
果为“<div>test1</div>bb<div>test2</div>

7


import re
s='qqq11111qqq11qqq11111qqq'
r = re.findall('[^\d]+\d*[^\d]+',s)
print r
['qqq11111qqq', 'qqq11111qqq']
注:注意字符的站位
http://www.jb51.net/article/73403.htm
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值