Python正则表达式:出现#时遇到问题

时间:2012-02-03 16:23:32

标签: python regex

有人可以告诉我为什么以下内容不匹配:

>>> re.search(r'(\d{2, 10})', '153')

这个匹配:

>>> re.search(r'\d{3}', '153')
<_sre.SRE_Match object at 0x02110368>

1 个答案:

答案 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}'