认识正则表达式(三)

摘要:

        认识re.findall()与re.search()的区别,re.findall()的使用

认识另外一种匹配方法re.findall()

之前认识的re.search()是返回一个Match对象,是文本中第一次匹配的对象,而findall()的方法却有所不同。findall()方法返回的是一个列表,包含文本匹配中的所有匹配,如果没有找到相关配置项返回的则是空列表。

接下来还是举个例子:

例子:

2022-05-20销售额340000元;2022-06-20销售额430000元。

需要提取所有的日期。

如果使用之前的search()代码如下:

    text = " 2022-05-20销售额340000元;2022-06-20销售额430000元。"
    pattern = re.compile(r"\d{4}-\d{2}-\d{2}")
    res = pattern.search(text)
    print(res.group())

输出结果如下:

输出结果:2022-05-20

如果采用findall(),代码如下:

    text = " 2022-05-20销售额340000元;2022-06-20销售额430000元。"
    pattern = re.compile(r"\d{4}-\d{2}-\d{2}")
    res = pattern.findall(text)
    print(res)

输出结果如下:

输出结果:['2022-05-20', '2022-06-20']

与search()相比,findall()返回的不是Match 对象而是一个数组,所以不可以用group()直接输出匹配对象。同时,findall()返回了所有匹配的字符串,可以通过访问列表的方式调用匹配结果。在日常应用中findall()使用的比search()更频繁。

如果有介绍错误的请指正,如有补充请在评论中发表您的观点,迷途中的小小书童,请赐教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值