正则中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']


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

相关文章
|
Java
正则表达式基本使用
正则表达式基本使用
603 0
正则表达式基本使用
|
19天前
|
机器学习/深度学习 缓存 JavaScript
简单粗暴的正则表达式笔记
简单粗暴的正则表达式笔记
73 25
|
5月前
|
数据采集 Java 数据处理
正则表达式替换技巧与实用案例分享
正则表达式替换技巧与实用案例分享
|
6月前
|
人工智能 Java 数据格式
JavaSE——正则表达式(1/2):概述、初步使用(普通方法,正则表达式)、书写规则(字符类,预定义字符,数量词,其他,特殊案例)
JavaSE——正则表达式(1/2):概述、初步使用(普通方法,正则表达式)、书写规则(字符类,预定义字符,数量词,其他,特殊案例)
49 3
|
6月前
分享JavaWeb中filter过滤器的案例妙用 - 脏话过滤/编码过滤/代码过滤
分享JavaWeb中filter过滤器的案例妙用 - 脏话过滤/编码过滤/代码过滤
42 0
|
开发者
正则表达式中子模式如何取别名 注释又怎么写
正则表达式的注释居然有如此玄机!
51 0
正则表达式中子模式如何取别名 注释又怎么写
|
前端开发
前端学习案例8-正则-括号的用法
前端学习案例8-正则-括号的用法
84 0
前端学习案例8-正则-括号的用法
|
前端开发
前端学习案例7-正则-括号的用法
前端学习案例7-正则-括号的用法
87 0
前端学习案例7-正则-括号的用法
LeetcodeSQL入门——知识点总结(选择/排序/修改/字符串处理/正则)
LeetcodeSQL入门——知识点总结(选择/排序/修改/字符串处理/正则)