Python实现身份证号码生日、性别的提取

2023-04-03 00:00:00 提取 性别 身份证号码

可以使用Python的正则表达式模块re来提取身份证号码中的生日和性别信息。以下是一个简单的示例代码:

import re

id_card = '420984199501011234'  # 身份证号码

# 提取生日信息
birthday = re.findall(r'\d{4}(\d{2})(\d{2})', id_card)
if birthday:
    year, month, day = birthday[0]
    print(f'生日:{year}年{month}月{day}日')

# 提取性别信息
gender = re.findall(r'\d{17}(\d{1})', id_card)
if gender:
    gender_code = int(gender[0])
    if gender_code % 2 == 0:
        print('性别:女')
    else:
        print('性别:男')

在上面的代码中,我们首先使用正则表达式 \d{4}(\d{2})(\d{2}) 来匹配身份证号码中的生日信息,其中 \d{4} 匹配年份部分,(\d{2}) 匹配月份和日份,圆括号表示一个分组。然后使用 re.findall() 函数来找到所有符合条件的生日信息,结果为一个列表,列表中的元素是一个元组,包含年、月、日三个字符串。

接着我们使用正则表达式 \d{17}(\d{1}) 来匹配身份证号码中的第 18 位数字,即性别代码。因为性别代码的第一位是数字,第二位可能是字母 X,所以```
这里我们只匹配一个数字。然后根据性别代码的奇偶性来判断性别,奇数表示男性,偶数表示女性。

相关文章