{}量词是如何工作的?

2022-03-25 00:00:00 python python-3.x regex python-3.6

问题描述

>>>
>>> re.search(r'^d{3, 5}$', '90210')  # {3, 5} 3 or 4 or 5 times
>>> re.search(r'^d{3, 5}$', '902101')  # {3, 5} 3 or 4 or 5 times
>>> re.search(r'^w{3, 5}$', 'hello')  # {3, 5} 3 or 4 or 5 times
>>> re.search(r'^w{3, 5}$', 'hell')  # {3, 5} 3 or 4 or 5 times
>>>

以上所有假设都应该起作用,使用{}量词


问题:

为什么r'^d{3, 5}$'没有搜索'90210'


解决方案

{m,n}量词之间不应有空格:

>>> re.search(r'^d{3, 5}$', '90210')  # with space


>>> re.search(r'^d{3,5}$', '90210')  # without space
<_sre.SRE_Match object at 0x7fb9d6ba16b0>
>>> re.search(r'^d{3,5}$', '90210').group()
'90210'

btw,902101与模式不匹配,因为它有6位数字:

>>> re.search(r'^d{3,5}$', '902101')

相关文章