2010-09-27 203 views
1

什麼是正則表達式,將確定 類有效的身份證號碼(包括結尾字母的)Python的正則表達式

+0

你爲什麼一遍又一遍問同樣的問題?即使以下答案不令人滿意(我不明白它們不是如何),如果您想添加任何信息,您應該編輯此原始問題或留下意見。 – BoltClock 2010-09-27 17:50:42

回答

5

假設你指的是新加坡國民登記身份證,請嘗試:

^[SFTG]\d{7}[A-Z]$ 

這遵循Wikipedia記錄的結構。

請注意,最後一個字母是一個校驗和,如果你想檢查校驗和,你必須這樣做separately

+0

如果我今天還剩下選票,我的投票將會提醒您,關於單字母校驗和的提醒必須單獨計算。 – BoltClock 2010-09-27 17:58:38

1

讓我們來看看。

  1. 爲字母的第一個字母:[a-z](稍後我們會忽略大小寫)
  2. 七位數:\d{7}(提示:d是數字;))
  3. 另一個字母:[a-z]

把它們放在一起我們得到:[a-z]\d{7}[a-z]。在蟒蛇這將是:

import re 
obj = re.compile('[a-z]\d{7}[a-z]', re.IGNORECASE) 
obj.match('S1234567E') 

您不必compile()正則表達式,如果你打算使用它只有一次。但是,如果您打算將多個字符串匹配到相同的表達式,那麼編譯它就是一個好主意。

參考:documentationre模塊。