版权声明:本文为博主原创文章,未经博主允许不得转载,博客地址: https://blog.csdn.net/qq_31601743/article/details/82150681
在正则表达式中 x?表示匹配0个或1个x字符,如下
import re
print(re.findall(r"a?", "aaa"))
结果:['a', 'a', 'a', '']
但是,为什么会返回这个结果呢?
首先,a?是属于贪婪匹配的,它会尽可能地匹配1个字符,如果匹配不到,则指针继续向下走,而字符串的格式中是包括空字符的,即"",故匹配的流程如下
aaa字符串的形式
匹配流程
因此返回结果为一个列表["a","a","a",""]