python爬虫 | 在 re 模块中使用正则表达式

几种re模块中使用正则表达式的方法

  1. findall 查找字符串中所有符合正则表达式的内容,返回 list

    import re
    
    list = re.findall(r"/d+","今天是2021年7月5日")
    print(list)
    
  2. finditer 查找字符串中所有符合正则表达式的内容,返回迭代器

    it = re.finditer(r"\d+","今天是2021年7月5日")
    
    #打印出迭代器
    print(it)
    
    #分条打印出迭代器中的内容
    for i in it:
        print(i)
    
    #分条打印出迭代器中符合正则表达式的内容
    for i int it:
        print(i.group())
    
  3. search 查找字符串中第一个符合正则表达式的内容,返回match对象

    s = re.search(r"\d+","今天是2021年7月5日")
    
    #打印一条内容
    print(s)
    
    #打印一条内容中符合正则表达式的内容
    print(s.group())
    
  4. match 从头开始匹配符合正则表达式的内容

    s = re.match(r"\d+","今天是2021年7月5日")
    print(s.group())
    
    s = re.match(r"\d+","2021年7月5日")
    print(s.group())
    
    

预加载正则表达式

obj = re.compile(r"\d+")

通过 group 名,提取需要的内容


s = """
<div class='one'><span id='1'>猫猫</span></div>
<div class='two'><span id='2'>狗狗</span></div>
<div class='three'><span id='3'>兔兔</span></div>
<div class='four'><span id='4'>鸭鸭</span></div>
"""

obj = re.compile(r"<div class='.*?'><span id='.*?'>(?P<NAME>.*?)</span></div>",re.S)
#re.S 使 . 可以匹配换行符


result = obj.finditer(s)

#打印所有的内容
for i in result:
    print(i.group())

#打印被命名的内容
for i in result:
	print(i.group("NAME"))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值