2012-02-03 7 views
3

の#とのトラブル次が一致しない理由を誰かが私を伝えることができた:Pythonの正規表現:れる発生

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

をし、この1つは一致します

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

答えて

9

reモジュールは、スペースが好きではありません。あなたがそこにスペースを持っていたら

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> 

、EXP:2,後中括弧内の領域は繰り返し演算子として認識されなくなりました。代わりに、それは{2, 10}探しリテラル一致次のようになります。

In [11]: re.search(r'(\d{2, 10})', '1{2, 10}').group(0) 
Out[11]: '1{2, 10}' 
+0

ええ、今作品、感謝を:)) – user1187968