import re
if re.match(r'1{0}', 'foo').group() == '':
print(True)
有人可以解释为什么总是满足这个条件吗?
第一个角色可以是:
1{0}
,2{0}
,a{0}
等
为什么:
re.match(r'11{0}', 'foo').group()
# AttributeError: 'NoneType' object has no attribute 'group
答案 0 :(得分:4)
{m}
指定应匹配先前RE的完全
m
个副本;较少的匹配导致整个RE不匹配。例如,a{6}
将恰好匹配六个'a'
个字符,但不会匹配五个。
因此,1{0}
将完全匹配字符1
的零重复。这与空的正则表达式相同,并且可以匹配任何内容。
答案 1 :(得分:3)
因为{0}
告诉它匹配0次重复。 0次重复是一个空字符串。空字符串始终匹配。