3. 自行查找身份证号的组成规律,编写合适的正则表达式对身份证号进行验证。提示:需要用户从键盘输入身份证号。 解题思路:编写合适的身份证号的正则表达式,编写函数分别判断是18位身份证号的正则表达式还是15位身份证号的正则表达式,定义一个n变量用于存放用户输入的身份证号,首先判断省份证号如果不是18位或则15位则输出身份证号格式错误,如果正确则判断是18位的还是15位的,如果是18位与之匹配如果省份证号正确输出省份证号匹配正确否则输出匹配错误。15位的类似于18位的。
时间: 2024-02-23 18:56:08 浏览: 204
好的,以下是针对身份证号的正则表达式以及相应的Python代码实现:
正则表达式:^(^\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$
代码实现:
```python
import re
def validate_id_number(id_number):
pattern = re.compile(r"^(^\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$")
if not pattern.match(id_number):
return "身份证号格式错误"
if len(id_number) == 15:
return "15位身份证号验证成功"
elif len(id_number) == 18:
# 验证省份证号
province_code = id_number[0:2]
province_dict = {
"11": "北京市",
"12": "天津市",
"13": "河北省",
"14": "山西省",
"15": "内蒙古自治区",
"21": "辽宁省",
"22": "吉林省",
"23": "黑龙江省",
"31": "上海市",
"32": "江苏省",
"33": "浙江省",
"34": "安徽省",
"35": "福建省",
"36": "江西省",
"37": "山东省",
"41": "河南省",
"42": "湖北省",
"43": "湖南省",
"44": "广东省",
"45": "广西壮族自治区",
"46": "海南省",
"50": "重庆市",
"51": "四川省",
"52": "贵州省",
"53": "云南省",
"54": "西藏自治区",
"61": "陕西省",
"62": "甘肃省",
"63": "青海省",
"64": "宁夏回族自治区",
"65": "新疆维吾尔自治区",
"71": "台湾省",
"81": "香港特别行政区",
"82": "澳门特别行政区",
"91": "国外"
}
if province_code in province_dict:
return "身份证号验证成功,省份为:" + province_dict[province_code]
else:
return "身份证号验证成功,但省份验证失败"
else:
return "身份证号格式错误"
```
函数使用方法:
```python
id_number = input("请输入身份证号:")
result = validate_id_number(id_number)
print(result)
```
这样就可以对输入的身份证号进行验证,并且输出相应的结果。
阅读全文