Python如何从身份证号中提取出生日期
时间: 2023-05-18 19:03:37 浏览: 1327
可以使用Python中的正则表达式来提取身份证号中的出生日期。以下是一个示例代码:
```python
import re
id_number = '110101199003077272' # 身份证号
pattern = r'\d{6}(?P<year>\d{4})(?P<month>\d{2})(?P<day>\d{2})\d{3}[0-9X]' # 正则表达式
match = re.match(pattern, id_number)
if match:
year = match.group('year')
month = match.group('month')
day = match.group('day')
print(f'出生日期为:{year}年{month}月{day}日')
else:
print('身份证号格式不正确')
```
输出结果为:
```
出生日期为:1990年03月07日
```
该代码使用正则表达式从身份证号中提取出生日期,并将其格式化输出。
相关问题
python代码示例从身份证号码中提取出生日期
在Python中,我们可以使用正则表达式库`re`来从中国居民身份证号码中提取出生日期。中国的身份证号码通常由18位数字组成,前6位代表地市代码、县区级代码、出生年份、出生月份和出生日。下面是一个简单的示例:
```python
import re
def extract_birth_date(id_number):
# 正则表达式匹配模式,身份证第7到14位为出生日期(格式YYYYMMDD)
pattern = r"(\d{6})(\d{4})"
match = re.match(pattern, id_number)
if match:
birth_year = int(match.group(2))
birth_month = int(match.group(1)[-2:])
birth_day = int(match.group(1)[:2])
# 格式化出生日期为 'YYYY-MM-DD'
birth_date = f"{birth_year}-{birth_month:02d}-{birth_day:02d}"
return birth_date
else:
return None # 如果身份证号码不符合格式,返回None
# 示例身份证号码
id_number = "123456789012345678"
birth_date = extract_birth_date(id_number)
print(f"出生日期:{birth_date}")
```
python用正则表达式从身份证号中提取出生日期
可以使用Python中的re模块来实现从身份证号中提取出生日期的操作。假设身份证号存储在变量id_card中,可以使用如下代码实现:
```python
import re
id_card = "11010119900307663X"
match = re.match(r"^\d{6}(\d{4})(\d{2})(\d{2})\d{3}[0-9X]$", id_card)
if match:
birthday = match.group(1) + "-" + match.group(2) + "-" + match.group(3)
print(birthday)
else:
print("身份证号格式不正确!")
```
上述代码中,使用正则表达式`^\d{6}(\d{4})(\d{2})(\d{2})\d{3}[0-9X]$`匹配身份证号,其中`(\d{4})`、`(\d{2})`、`(\d{2})`分别表示出生年份、月份和日期。如果匹配成功,则使用`match.group()`方法获取出生年月日,并拼接成字符串输出;否则提示身份证号格式不正确。
阅读全文