利用Python编程提取身份证的信息

利用Python编程提取身份证的信息

今天做一个正则表达式练习的时候,想到编一个小程序实现提取身份证的信息,例如从身份证信息提取隶属地区名,出生日期等。第二代身份证的位数为18位。

源码如下:

import re

# Sample 18-bit ID card number containing the birth date
id_card_number = "51142119991021155x"

# Define the regex pattern to extract the birth date
pattern = r'\d{4}(?:0[1-9]|1[0-2])(?:0[1-9]|[12][0-9]|3[01])'

# Search for the birth date in the ID card number
match = re.search(pattern, id_card_number)

# 在csdn搜到的文本信息,部分信息省略...
area_code = '''
110000 北京市       
 110101    东城区       
 110102    西城区       
 .....
 .....
 659006    铁门关市       
 659007    双河市       
 659008    可克达拉市       
 659009    昆玉市       
 659010    胡杨河市       
 710000 台湾省       
 810000 香港特别行政区       
 820000 澳门特别行政区 
'''
# 定义一个匹配区号和地区名的正则
pattern = re.compile('(\d+)\s+(\w+)')
# 将上面的字符串转成字典格式,键为区号,值为地区名
area_code_dict = dict(pattern.findall(area_code))


# 提取出生日期
if match:
    birth_date = match.group(0)
    print(f"出生日期: {birth_date}")
else:
    print("No birth date found in the ID card number.")

# 提取地区号
pattern1 = re.compile('^\d{6}')
match = pattern1.match(id_card_number)
if match:
    print('地区号为:', match.group(0))
    print('身份隶属于:',area_code_dict[match.group(0)])
else:
    print("No area code found in the ID card number.")

运行结果如下:

出生日期: 19991021
地区号为: 511421
身份隶属于: 仁寿县

以上的正则表达式通过[小蜜蜂AI][https://zglg.work]网站问答获取。

相关推荐

  1. 利用Python编程提取身份证信息

    2024-04-14 17:18:03       37 阅读
  2. Python编程-利用缓存管理实现程序提速

    2024-04-14 17:18:03       44 阅读
  3. 如何利用ChatGPT来提高编程效率

    2024-04-14 17:18:03       71 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 17:18:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 17:18:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 17:18:03       82 阅读
  4. Python语言-面向对象

    2024-04-14 17:18:03       91 阅读

热门阅读

  1. 实现队列的各种基本运算的算法(数据结构)

    2024-04-14 17:18:03       41 阅读
  2. 儿童学编程的好处

    2024-04-14 17:18:03       34 阅读
  3. 快速求和(c++提解)

    2024-04-14 17:18:03       37 阅读
  4. ES11-12

    ES11-12

    2024-04-14 17:18:03      42 阅读
  5. 10个最难的 Python 问题!

    2024-04-14 17:18:03       39 阅读
  6. 大模型RAG(二)向量化(embedding)

    2024-04-14 17:18:03       110 阅读
  7. Vue -- 生命周期

    2024-04-14 17:18:03       36 阅读
  8. Python的MATLAB使用

    2024-04-14 17:18:03       41 阅读
  9. 配置sql server启动参数

    2024-04-14 17:18:03       37 阅读
  10. 003 传参

    2024-04-14 17:18:03       32 阅读
  11. Linux:scp的远程拷贝文件的三种用法

    2024-04-14 17:18:03       38 阅读