编写一个函数,提取有效的 18 位身份证号码,从中提取出生日期,并以“出生日期是**** 年**月**日-年龄为**岁”的格式输出。
时间: 2023-12-23 22:04:27 浏览: 132
使用php实现从身份证中提取生日
你可以使用正则表达式来提取有效的18位身份证号码,并从中提取出生日期。然后,你可以使用datetime模块来计算年龄,并以指定的格式输出。以下是一个示例函数:
```python
import re
from datetime import datetime
def extract_birthdate(id_number):
pattern = r'^\d{6}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}[\dX]$'
match = re.match(pattern, id_number)
if match:
birthdate_str = match.group(1) + match.group(2) + match.group(3)
birthdate = datetime.strptime(birthdate_str, '%Y%m%d')
age = (datetime.now() - birthdate).days // 365
output = f"出生日期是{birthdate.year}年{birthdate.month}月{birthdate.day}日-年龄为{age}岁"
return output
else:
return "无效的身份证号码"
id_number = "身份证号码"
result = extract_birthdate(id_number)
print(result)
```
请注意,你需要将"身份证号码"替换为实际的身份证号码。这个函数将提取出生日期并计算年龄,然后以指定的格式输出。如果身份证号码无效,则会返回"无效的身份证号码"。
阅读全文