2010-09-27 276 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模块。