可以使用如下正则表达式来验证身份证:

^[1-9]\d{16}[\dxX]$

解释:

  • ^ 表示匹配字符串的开始位置
  • [1-9] 表示第一位必须是非零数字
  • \d{16} 表示后面跟着 16 位数字
  • [\dxX] 表示最后一位可以是数字、小写字母 x 或大写字母 X
  • $ 表示匹配字符串的结束位置

完整示例代码:

import re

def validate_id_card(id_card): pattern = r'^[1-9]\d{16}[\dxX]$' return re.match(pattern, id_card) is not None

测试

print(validate_id_card('110101199003077071')) # True print(validate_id_card('11010119900307707x')) # True print(validate_id_card('11010119900307707X')) # True print(validate_id_card('11010119900307707')) # False,长度不足 print(validate_id_card('1101011990030770710')) # False,长度超过 18 位 print(validate_id_card('11010119900307707Y')) # False,最后一位不是数字或字母 x 或


原文地址: https://www.cveoy.top/t/topic/fUbf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录