使用正则表达式验证身份证要求:共计 18 位前 17 位均为数字最后一位可为小写的 x大写的 X 或数字
可以使用如下正则表达式来验证身份证:
^[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 著作权归作者所有。请勿转载和采集!