如何编写Python代码校验美国刚铎州新车牌格式合法性
刚铎(Gondor)州新车牌格式校验实现
校验规则说明
刚铎州新车牌固定格式为GD-YYYY-xx-xx,具体校验要求:
- 开头固定为字符
GD,后接半角短横线 - 第一分段为4位任意阿拉伯数字(范围0000-9999),后接半角短横线
- 后续两个分段各为2位英文字母,所有字母不得为
O、I,分段间用半角短横线分隔
Python实现代码
用正则匹配是最简洁高效的实现方式,以下代码默认兼容小写字母输入(自动转大写校验):
import re def validate_gondor_license_plate(plate_str: str) -> bool: # 去除输入首尾空白,统一转为大写,兼容小写输入、误输前后空格的场景 processed_plate = plate_str.strip().upper() # 正则规则:严格匹配完整车牌格式,排除字母O、I match_pattern = r'^GD-\d{4}-[A-HJ-NP-Z]{2}-[A-HJ-NP-Z]{2}$' return bool(re.fullmatch(match_pattern, processed_plate))
测试示例
# 合法用例 返回True print(validate_gondor_license_plate("GD-1234-AB-CD")) # 标准格式合法车牌 print(validate_gondor_license_plate("gd-0000-xy-zw")) # 小写输入自动兼容 print(validate_gondor_license_plate("GD-9999-ZY-XW")) # 最大数字段合法车牌 # 非法用例 返回False print(validate_gondor_license_plate("GD-123-OI-AB")) # 含禁用字母O、I print(validate_gondor_license_plate("GD-12345-AB-CD")) # 数字段长度不是4位 print(validate_gondor_license_plate("GE-1234-AB-CD")) # 前缀不是固定GD print(validate_gondor_license_plate("GD-1234-A1-CD")) # 字母段混入数字
如果业务要求必须输入大写字母,只需要去掉
.upper()处理逻辑,即可强制要求输入严格匹配大写规则。
内容的提问来源于stack exchange,提问作者Fafa
相关产品推荐
相关产品推荐

