Python实现身份证号码生日、性别的提取
可以使用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,所以```
这里我们只匹配一个数字。然后根据性别代码的奇偶性来判断性别,奇数表示男性,偶数表示女性。
相关文章