专栏首页小闫笔记正则中re高级用法findall中的一个小坑

正则中re高级用法findall中的一个小坑

先来看一下下面的例子,使用ipython实验:

正常使用结果:

In [4]: re.findall(r'ab','123ab156465ab1111')
Out[4]: ['ab', 'ab']

下面是用户自己添加一个分组,和添加两个分组的例子:

In [5]: re.findall(r'a(b)','123ab156465ab1111')
Out[5]: ['b', 'b']
In [8]: re.findall(r'a(b)(c)','123abc156465abc1111')
Out[8]: [('b', 'c'), ('b', 'c')]

看到了吧,其实在findall中如果用户添加分组的时候,其实默认显示的是用户分组的结果。为了想要显示匹配所有的内容,需要取消显示用户分组

解决方式,要加上问号来启用“不捕捉模式”:

In [7]: re.findall(r'a(?:b)','123ab156465ab1111')
Out[7]: ['ab', 'ab']

下次在使用的时候注意一下吧......

本文分享自微信公众号 - 全栈技术精选(Pythonnote)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Numpy

    You cannot protect yourself from sadness without protecting yourself from happin...

    小闫同学啊
  • OAuth2.0与OAuth1.0你了解了吗?

    OAuth 协议简单的来说就是第三方应用在不知道我方用户账号密码的情况下,通过我们的授权,进行登录操作。它减少了用户注册的次数,方便用户快捷登录,提升用户体验度...

    小闫同学啊
  • 数据可视化神器

    今天要推荐的就是这款超级好用的数据可视化插件「pyecharts」,使用 pip install 即可安装。无论你是练习用,还是结合框架用,甚至前后端分离用,它...

    小闫同学啊
  • 从横切到纵切,架构模式CQRS,提高系统进化能力

    曾几何时,你是否疑惑于VO、PO、DTO、BO、POJO、Entity、MODEL的区别?

    黄泽杰
  • 【读者投稿】几年安全学习经验杂谈

    我属于11年左右才开始入行的小菜鸟,听着前辈们经常讲着在10年之前,注入分分钟拿站,到10年开始慢慢出现waf,作为一个新人,waf当年的确是个不错的ideas...

    信安之路
  • 一道搜狗面试题:IO多路复用中select、poll、epoll之间的区别

    它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操...

    不太灵光的程序员
  • Android点击视图外部,隐藏键盘 及 事件传递机制

    在做IM的时候当用户点击输入框外的区域应该隐藏 输入法键盘 或者 其他操作区域

    剑行者
  • 聊聊Elasticsearch的EsThreadPoolExecutor

    本文主要研究一下Elasticsearch的EsThreadPoolExecutor

    codecraft
  • 聊聊Elasticsearch的EsThreadPoolExecutor

    本文主要研究一下Elasticsearch的EsThreadPoolExecutor

    codecraft
  • HAWQ取代传统数仓实践(十四)——事实表技术之累积快照

    一、累积快照简介         累积快照事实表用于定义业务过程开始、结束以及期间的可区分的里程碑事件。通常在此类事实表中针对过程中的关键步骤都包含日期外键,并...

    用户1148526

扫码关注云+社区

领取腾讯云代金券