# 贪婪:'[a-zA-Z]{3,5}'
# 非贪婪:'[a-zA-Z]{3,5}?' 或 '[a-zA-Z]{3}'
# 建议使用后者,不要使用?号,否则你会与下面的?号混淆
# 匹配 0 次或无限多次 *号,*号前面的字符出现 0 次或无限次
import re
a = 'exce0excell3excel3excellell'
r = re.findall('excel*',a)
r1 = re.findall('excel.*',a)
r2 = re.findall('excel.+',a)
r3 = re.findall('excel+',a)
r4 = re.findall('excel.?',a)
print(r)
print(r1)
print(r2)
print(r3)
print(r4)
# ['exce', 'excell', 'excel', 'excell']
# ['excell3excel3excellell']
# ['excell3excel3excellell']
# ['excell', 'excel', 'excell']
# ['excell', 'excel3', 'excell']
# 匹配 1 次或者无限多次 +号,+号前面的字符至少出现 1 次
import re
a = 'exce0excell3excel3'
r = re.findall('excel+',a)
print(r)
# ['excell', 'excel']
# 匹配 0 次或 1 次 ?号,?号经常用来去重复
import re
a = 'exce0excell3excel3'
r = re.findall('excel?',a)
print(r)
# ['exce', 'excel', 'excel']
2. 字符匹配