关于Python中正则使用findall和分组的一个坑
2016-01-21 15:49
459 查看
首先,findall有两种用法:
findall(string[, pos[, endpos]])
re.findall(pattern, string[, flags])
这里讲的是第二种,里面有一个坑。
直接上一段代码看看坑在哪里:
输出结果:
看到差异了吗?
这里findall如果使用了分组,则输出的内容将是分组中的内容而非find到的结果,为了得到find到的结果,要加上问号来启用“不捕捉模式”,就可以了。
findall(string[, pos[, endpos]])
re.findall(pattern, string[, flags])
这里讲的是第二种,里面有一个坑。
直接上一段代码看看坑在哪里:
import re a = 'abc123abv23456' b = re.findall(r'23(a)?',a) print b b = re.findall(r'23(?:a)?',a) print b
输出结果:
['a', ''] ['23a', '23']
看到差异了吗?
这里findall如果使用了分组,则输出的内容将是分组中的内容而非find到的结果,为了得到find到的结果,要加上问号来启用“不捕捉模式”,就可以了。
相关文章推荐
- python 路径函数
- Python 学习之路(二)
- Python学习之路(一)
- python+django-mezzanine安装
- python float类型使用方法
- python新手动手练习!!
- Python脚本email
- Python脚本sendmail
- 用命令访问D:\python学习\wendjia教程\aa.py
- python处理url中的中文编码,以及其他编码问题
- 我写的第一行python
- python之open()函数
- python学习笔记1.22
- 解决python中路径中包含中文无法找到文件的问题
- python:笔记for循环中的else
- python 数字有关的总结
- 在python中获取当前位置所在的行号和函数名
- Python任务调度之sched
- mac install MySQL-python
- 真机上运行Python脚本 A new session could not be created问题解决