python正则表达式完成车牌号检验
正则表达式:对于车牌而言,选用的正则表达式是"^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼A-Z]{1}[A-Z]{1}\s{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$",使用re模块中的findall方法可以对输入的车牌进行合法性判定
对实验要求,可以大致拆分为以下几个部分:
- 设置主循环:将文件以追加读写的方式打开,进行合法性判断、对非法的舍弃、合法中重复的位置定位,不重复的写入、关闭文件保存
- 合法性判断:首先定义了一个正则表达式,并使用其进行合法性判断
- 合法性重复性判断:设立一个列表,使用append方法将每次输入的字符都加入其尾,使用列表的count方法计算每次写入的字符串是否有重复,由于count会返回其在列表中的次数,一旦次数超过1,我们就判定为重复,届时使用列表的index方法返回的坐标+1即其在文本文件中第几行出现,打印出即可
实验测试结果如下:
可以看到输入的车牌号可以为汉字也可以是全英文,对车牌号数字数量不够或车牌号输入错误都会判定为输入非法,而正确的非重复的会将其保存至文本文件里,正确的重复的将不会保存。
源代码:
import re
paizi=[]
pattern_str = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼A-Z]{1}[A-Z]{1}\s{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$"
def is_car_number(pattern, string):if re.findall(pattern, string):return 1else:return 2
if __name__ == '__main__':while True:string_str=input('输入车牌号')fp_exercise4 = open(r'D:\浙理课程相关资料\2022-2023上\python\exercise4_test.txt', 'a+')if is_car_number(pattern_str, string_str)==2:print("输入非法,请重新输入")else:paizi.append(string_str)#加到列表中,用于判定重复if paizi.count(string_str)==2:#检测到重复信号print("该车牌已经存在!它在第{}行".format(paizi.index(string_str)+1))else:print("输入正确,已保存!")fp_exercise4.write(string_str + '\n')fp_exercise4.close()
python正则表达式完成车牌号检验相关推荐
- c++11 regex 正则表达式验证车牌号
在使用c++11 regex验证车牌号前,要首先明白有几个坑要踩: 1.车牌号校验规则,只有弄清楚了校验车牌号的规则才能写出正确的正则表达式,所以首先要弄清楚车牌号的校验规则. 2.c++11 中re ...
- java 车牌号验证正则表达式_车牌号校验正则表达式
标签: 一.车牌号校验规则 1.常规车牌号:仅允许以汉字开头,后面可录入六个字符,由大写英文字母和阿拉伯数字组成.如:粤B12345: 2.武警车牌:允许前两位为大写英文字母,后面可录入五个或六个字符 ...
- java 车牌正则表达式_车牌号校验正则表达式
一.车牌号校验规则 1.常规车牌号:仅允许以汉字开头,后面可录入六个字符,由大写英文字母和阿拉伯数字组成.如:粤B12345: 2.最后一个为汉字的车牌:允许以汉字开头,后面可录入六个字符,前五位字符 ...
- 正则表达式 手机号 车牌号 身份证 姓名
Android中手机号.车牌号正则表达式 手机号 手机号的号段说明转载自:国内手机号码的正则表达式|蜗牛的积累 手机名称有GSM:表示只支持中国联通或者中国移动2G号段(130.131.132.134 ...
- 基于Python实现随机车牌号程序
资源下载地址:https://download.csdn.net/download/sheziqiong/85617158 1. 课程设计目的 <软件设计基础-Python>课程设计是这门 ...
- Python 随机生成车牌号和车牌号对应的颜色,大批量造测试数据
公司需求可以支持大数据量的车牌从excel导入到系统,写了个脚本支持测试 import random import pandas as pd import logging logging.basicC ...
- 用python写一个车牌号识别系统
写车牌号识别系统需要用到计算机视觉技术,具体的实现方法如下: 图像预处理:对图像进行预处理,包括灰度化.二值化.边缘检测等,以得到图像中车牌的区域. 区域分割:对图像进行分割,得到车牌区域. 文字识别 ...
- java 车牌号正则_js 正则表达式 判断车牌号
1.常规车牌号:仅允许以汉字开头,后面可录入六个字符,由大写英文字母和阿拉伯数字组成.如:粤B12345: 2.武警车牌:允许前两位为大写英文字母,后面可录入七个字符,由大写英文字母和阿拉伯数字组成, ...
- java 车牌号验证正则表达式_使用正则表达式验证手机号、车牌号
1.javascript验证手机号 function checkPhone(){ var sPhone = document.getElementById("id").value ...
最新文章
- [转载]python optionparser1
- 二分图行列匹配--- hdu2119,hdu1498
- Hadoop平台作业参数设置关于mapreduce.job.split.metainfo.maxsize的说明
- C语言训练题-有重复的数据
- 为什么Go没有三元运算符
- 隐藏apache版本号的方法
- spring mvc中的拦截器
- 笨办法学 Python · 续 练习 17:字典
- h2 不能访问localhost_Spring 配置的 H2 控制台 frameOptions 导致无法访问
- 数据结构c语言版马睿课后答案,清华大学出版社-图书详情-《C语言程序设计习题解答与实验指导》...
- NAT篇 双剑合璧,无往不利——双向NAT
- 从零学Java(10)之方法详解,喷打野你真的没我6!
- hexo+next主题优化之加入网易云音乐、网易云跟帖、炫酷动态背景
- Python穷举法破解密码
- 如何在markdown中打出上标、下标和一些特殊符号 from jianshuer 这是朕的江山
- HALCON_XLD轮廓算子_二
- 进店率、提袋率、客单价
- (文末送书)字符数组与字符串
- Java毕业设计_消防安全培训系统
- 一份SEO优化操作方案具体讲解