正则表达式中的数量词列表如下:
数量词 | 含义 |
* | 匹配前一个字符0次或无限次 |
+ | 匹配前一个字符1次或无限次 |
? | 匹配前一个字符0次或1次 |
{m} | 匹配前一个字符m次 |
{m,n} | 匹配前一个字符m~n次 |
str = 'pytho0python0pythonn3';
1、*
result = re.findall('python*',str)
print(result)
#['pytho','python',pythonn']
分析:'python*'等价于匹配'pytho'+'n{0,}' ,结果'n'分别被匹配了0次、1次、2次
2、+
result = re.findall('python+',str)
print(result)
#['python','pythonn']
分析:'python+'等价于匹配'pytho'+'n{1,}',结果'n'分别被匹配了1次、2次
3、?
result = re.findall('python?',str)
print(result)
#['pytho','python','python']
分析:'python?'等价于匹配'pytho'+'n{0,1}',结果'n'分别被匹配了0次、1次,1次。因为?限制匹配次数最多只有一次,所以在匹配'pythonn'时最后一个n并未被匹配。