使用正则表达式校验身份证号的正确性
在数据处理中,正则表达式经常用于验证身份证号格式的准确性。中国身份证号通常为18位数,格式为YYYYMMDDXXXXXX
,其中包含年份、月份、日期和特定编码。通过正则表达式可以快速验证身份证号是否符合该标准。
核心正则表达式示例:
要校验18位身份证号码的正确性,可以使用以下正则表达式:
^[1-9]d{5}(18|19|20)d{2}(0[1-9]|1[0-2])(0[1-9]|[12]d|3[01])d{3}(d|X|x)$
该表达式的含义:
- ^[1-9]:身份证开头的第一个数字不能为0;
- d{5}:接下来为5个数字,表示省市区编码;
- (18|19|20)d{2}:年份限定为1800-2099;
- (0[1-9]|1[0-2]):月份限制为01-12;
- (0[1-9]|[12]d|3[01]):日期范围为01-31;
- d{3}:为3位顺序码;
- (d|X|x)$:校验位为数字或X(不区分大小写)。
应用实例
使用上述正则表达式,可以在代码中有效检测身份证号码:
import re
id_number = '11010519491231002X'
pattern = r'^[1-9]d{5}(18|19|20)d{2}(0[1-9]|1[0-2])(0[1-9]|[12]d|3[01])d{3}(d|X|x)$'
if re.match(pattern, id_number):
print('身份证号格式正确')
else:
print('身份证号格式不正确')
注意:该正则表达式仅判断格式,不验证身份证号码的合法性。
1.98KB
文件大小:
评论区