有人可以告诉我为什么以下内容不匹配:
>>> re.search(r'(\d{2, 10})', '153')
这个匹配:
>>> re.search(r'\d{3}', '153')
<_sre.SRE_Match object at 0x02110368>
答案 0 :(得分:9)
re
模块不喜欢2,
之后的空格:
In [2]: re.search(r'(\d{2, 10})', '153')
In [4]: re.search(r'(\d{2,10})', '153')
Out[4]: <_sre.SRE_Match object at 0x15c4648>
在那里有空格后,大括号内的表达式不再被识别为重复运算符。相反,它成为寻找{2, 10}
的字面匹配:
In [11]: re.search(r'(\d{2, 10})', '1{2, 10}').group(0)
Out[11]: '1{2, 10}'