练习正则表达式之re模块

一、finditer

import re
it=re.finditer(r"\d+","我的电话是10086,我对象电话是10010")
for i in it:
    print (i.group())

#这里finditer是python中的迭代器,利用group函数输出结果。\d+就是取数字的正则表达式

二、compile

obj=re.compile("\d+")
r=obj.finditer("我的电话是10000,我对象电话是10011")
 for it in r:
     print (it.group())

#也可以用compile预加载一个正则,可起到反复使用的作用

三、进阶

 

s='''
<div class='ja'><span id='1'>resnet</span></div>
<div class='jj'><span id='2'>lenet</span></div>
<div class='jo'><span id='3'>alexnet</span></div>
<div class='jc'><span id='4'>vgg</span></div>
<div class='td'><span id='5'>googlenet</span></div>
'''
obj=re.compile("div class='.*?'><span id='.*?'>.*?</span></div>",re.S)  #re.S的作用是可以让.匹配到换行符

r=obj.finditer(s)
for i in r:
    print (i.group())

#用上述的正则表达式即可找到我们想要的。

ob=re.compile("div class='(.*?)'><span id='(?P<id>.*?)'>(?P<name>.*?)</span></div>",re.S)  
  
a=ob.finditer(s)
for i in a:
    print (i.group('name'))

  

#而当我们需要表达式中特定的内容,我们就可以用 (?P<id>.*?)   其中的id可以自己设置。

 print (i.group('name'))即可输出该部分的内容。再如:

ob=re.compile("div class='(.*?)'><span id='(?P<id>.*?)'>(?P<name>.*?)</span></div>",re.S)  
a=ob.finditer(s)
for i in a:
    print (i.group('name'))
    print(i.group('id'))    


 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

通信学生一枚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值