python正则表达式中的括号匹配问题
作者:mdxy-dxy 时间:2023-07-26 01:36:24
问题:
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,正则表达式,括号匹配
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2021-12-22 02:07:24
![](https://img.aspxhome.com/file/2023/8/95718_0s.jpg)
Mysql中复制详细解析
2024-01-13 20:46:25
element-ui组件中input等的change事件中传递自定义参数
2024-06-16 19:07:27
解决Python spyder显示不全df列和行的问题
2021-06-23 00:15:47
简写一个的lightbox显示隐藏层效果(兼容)
2010-07-23 20:02:00
使用pycharm运行flask应用程序的详细教程
2022-12-15 05:15:55
![](https://img.aspxhome.com/file/2023/1/95221_0s.png)
基于事件冒泡、事件捕获和事件委托详解
2024-04-28 09:43:33
![](https://img.aspxhome.com/file/2023/2/132812_0s.jpg)
聊聊python中的循环遍历
2022-06-17 23:44:43
MySQL中修改表结构时需要注意的一些地方
2024-01-29 09:04:11
![](https://img.aspxhome.com/file/2023/7/128087_0s.png)
在Python中使用defaultdict初始化字典以及应用方法
2021-01-05 02:03:02
Oracle的约束介绍与约束维护
2024-01-28 04:19:05
python获取外网ip地址的方法总结
2022-11-09 18:40:06
oracle sys_connect_by_path 函数 结果集连接
2009-07-12 18:48:00
解析Mac OS下部署Pyhton的Django框架项目的过程
2021-04-03 14:00:34
python爬取网易云音乐评论
2021-02-23 11:23:02
Vue组件的使用及个人理解与介绍
2024-05-09 15:13:52
Python入门篇之字典
2022-09-24 23:53:47
分享五个超实用Python脚本,减少垃圾软件负担
2022-07-18 18:38:59
![](https://img.aspxhome.com/file/2023/7/72767_0s.jpg)
pytest实现测试用例参数化
2023-12-10 19:01:21
Oracle中字符串连接的实现方法
2024-01-15 11:59:24