Python 正则表达式实现身份证号码格式匹配

2023-04-03 00:00:00 格式 匹配 身份证号码

下面是一个 Python 正则表达式实现身份证号码格式匹配的示例代码:

import re

# 定义身份证号码的正则表达式
id_pattern = r'^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9Xx])$'

# 匹配字符串
test_string = 'pidancode.com的身份证号码是340123199001011234,这是一个测试字符串'
result = re.findall(id_pattern, test_string)

# 输出匹配结果
if result:
    print('匹配到的身份证号码为:', result)
else:
    print('未匹配到身份证号码')

在这个示例代码中,我们首先定义了一个名为 id_pattern 的正则表达式,用来匹配身份证号码。这个正则表达式可以匹配符合规范的身份证号码,包括前 6 位地区码、8 位出生日期码、3 位顺序码和最后一位校验码。

接下来,我们使用 re.findall() 方法对字符串进行匹配,并将结果保存在变量 result 中。如果匹配成功,就会输出匹配到的身份证号码,否则会输出“未匹配到身份证号码”。

值得注意的是,在这个示例代码中,我们并没有对身份证号码的有效性进行验证,仅仅是对其格式进行了匹配。如果需要进行有效性验证,还需要使用更加严格的校验规则,包括计算校验码等操作。

相关文章