您的位置:首页 > 编程语言 > Python开发

关于Python中正则使用findall和分组的一个坑

2016-01-21 15:49 459 查看
首先,findall有两种用法:

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到的结果,要加上问号来启用“不捕捉模式”,就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: