1. 程式人生 > >關於Python正則表示式匹配0個或1個的問題

關於Python正則表示式匹配0個或1個的問題

在正則表示式中  x?表示匹配0個或1個x字元,如下

import re


print(re.findall(r"a?", "aaa"))

結果:['a', 'a', 'a', '']

但是,為什麼會返回這個結果呢?

首先,a?是屬於貪婪匹配的,它會盡可能地匹配1個字元,如果匹配不到,則指標繼續向下走,而字串的格式中是包括空字元的,即"",故匹配的流程如下

aaa字串的形式

匹配流程

因此返回結果為一個列表["a","a","a",""]