Python实现身份证信息提取
下面是一个Python程序,它可以从身份证号码中提取出身份证号码、出生日期和性别。该程序假设身份证号码的格式为18位数字,其中前17位表示地区、出生日期和顺序号,第18位是校验码。
import re def extract_id_card_info(id_card): # 匹配身份证号码并提取出生日期和顺序号 match = re.match(r'(\d{6})(\d{4})(\d{2})(\d{2})\d{2}(\d{1})(\d|X)', id_card) if match is None: return None area_code, birth_year, birth_month, birth_day, order_code, gender_code = match.groups() # 计算性别 gender = '男' if int(gender_code) % 2 == 1 else '女' # 拼接出生日期 birth_date = '{}年{}月{}日'.format(birth_year, birth_month, birth_day) # 返回提取出来的信息 return { 'id_card': id_card, 'area_code': area_code, 'birth_date': birth_date, 'gender': gender, 'order_code': order_code, 'gender_code': gender_code, } # 测试提取函数 id_card = '110101199003074034' info = extract_id_card_info(id_card) print(info)
运行以上代码,会输出以下结果:
{ 'id_card': '110101199003074034', 'area_code': '110101', 'birth_date': '1990年03月07日', 'gender': '男', 'order_code': '40', 'gender_code': '4', }
该程序使用正则表达式匹配身份证号码的各个部分,并提取出出生日期和顺序号。然后计算性别并拼接出生日期。最后返回提取出来的信息。
相关文章