python正则表达式中的括号匹配问题


Posted in Python onDecember 14, 2014

问题:

m = re.findall('[0-9]*4[0-9]*', '[4]')
可以匹配到4.
m = re.findall('([0-9])*4([0-9])*', '[4]')
匹配不到4.
这是为什么呢?PS,这个是一个简化的说明,我要用的正则比这个复杂,所以要用到(),表示一个序列的匹配。
补充一点,我放在notepad++中用的时候,两种写法都能匹配出来,不知道为什么python中就不行了。

答案:

python的正则中用()会进行匹配,所以返回结果是['',''],就是两个()中的匹配。要想达到原来的匹配效果,就是把4匹配出来,有两种解决方法:

1.最外层加个大括号,变成:m = re.findall('(([0-9])*4([0-9])*)', '[4]'),返回结果的第一个元素就是匹配结果了。
2.去除()的匹配结果返回,在括号前面加入?:,变成m = re.findall('(?:\d)*4(?:\d)*', '[4]'),返回结果就是要匹配的结果了。

Python 相关文章推荐
Python基于贪心算法解决背包问题示例
Nov 27 Python
Python命令行解析模块详解
Feb 01 Python
使用pandas的DataFrame的plot方法绘制图像的实例
May 24 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
May 26 Python
Python图像识别+KNN求解数独的实现
Nov 13 Python
python 使用openpyxl读取excel数据
Feb 18 Python
python解析照片拍摄时间进行图片整理
Jul 23 Python
python的类方法和静态方法
Dec 13 #Python
Python计算程序运行时间的方法
Dec 13 #Python
Python编程中的反模式实例分析
Dec 08 #Python
Python实现拼接多张图片的方法
Dec 01 #Python
python字符串替换的2种方法
Nov 30 #Python
Python中3种内建数据结构:列表、元组和字典
Nov 30 #Python
Python函数中定义参数的四种方式
Nov 30 #Python
You might like
php垃圾代码优化操作代码
2010/08/05 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
php文件系统处理方法小结
2016/05/23 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
javascript 常用功能总结
2012/03/18 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
Python enumerate遍历数组示例应用
2008/09/06 Python
python实现list由于numpy array的转换
2018/04/04 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
拉夫劳伦爱尔兰官方网站:Ralph Lauren爱尔兰
2020/04/10 全球购物
医院节能减排方案
2014/06/13 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
新手初学Java网络编程
2021/07/07 Java/Android