2014-01-30 44 views
0

我在下面給出的代碼中寫入了匹配包含所有數字的固定長度爲10的字符串。Python正則表達式匹配不起作用

import re 
result=re.match("^d{10}$", u"5478512045") 

但它返回無。我不知道它爲什麼失敗。如果我在這裏做錯任何事,請糾正我。

回答

1

控制字符d上缺少轉義\。它應該是:

result=re.match("^\d{10}$", u"5478512045") 

沒有\d之前,你的正則表達式試圖匹配一個d字符串。通過將其更改爲\d,您可以與任何十進制數字的特殊字符匹配。

+0

謝謝馬克。我現在獲取返回值爲「<_sre.SRE_Match對象在0x02A27138>」。請告訴我如何檢查它是否通過或失敗。 – gliese581g

+2

'result.group()'將打印匹配結果。然而,你有'<_sre.SRE_Match對象在0x02A27138>'的事實,但是意味着你有一個匹配。 – danasilver

+1

@ dsilver1221是正確的。你得到一個對象的事實意味着你有一個匹配。獲得'無'返回(像以前一樣)意味着不匹配。查看're'模塊的文檔(http://docs.python.org/2/library/re.html#re.match),它非常全面。 –