前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则中re高级用法findall中的一个小坑

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

作者头像
小闫同学啊
发布2019-07-18 11:03:34
5460
发布2019-07-18 11:03:34
举报
文章被收录于专栏:小闫笔记小闫笔记

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

正常使用结果:

代码语言:javascript
复制
In [4]: re.findall(r'ab','123ab156465ab1111')
Out[4]: ['ab', 'ab']

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

代码语言:javascript
复制
In [5]: re.findall(r'a(b)','123ab156465ab1111')
Out[5]: ['b', 'b']
代码语言:javascript
复制
In [8]: re.findall(r'a(b)(c)','123abc156465abc1111')
Out[8]: [('b', 'c'), ('b', 'c')]

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

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

代码语言:javascript
复制
In [7]: re.findall(r'a(?:b)','123ab156465ab1111')
Out[7]: ['ab', 'ab']

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈技术精选 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档