关于Python正则表达式匹配0个或1个的问题

版权声明:本文为博主原创文章,未经博主允许不得转载,博客地址: 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",""]

猜你喜欢

转载自blog.csdn.net/qq_31601743/article/details/82150681