Python 正则表达式实现身份证号码格式匹配
下面是一个 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 中。如果匹配成功,就会输出匹配到的身份证号码,否则会输出“未匹配到身份证号码”。
值得注意的是,在这个示例代码中,我们并没有对身份证号码的有效性进行验证,仅仅是对其格式进行了匹配。如果需要进行有效性验证,还需要使用更加严格的校验规则,包括计算校验码等操作。
相关文章