python正则表达式完成车牌号检验的代码实例

 更新时间:2024年02月19日 15:02:49   作者:青取之于蓝但没他蓝  
这篇文章主要给大家介绍了关于python正则表达式完成车牌号检验的相关资料,在Python中正则表达式是一种用于匹配和操作字符串的强大工具,文中通过代码介绍的非常详细,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

正则表达式:

对于车牌而言,选用的正则表达式是"^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼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 1
    else:
        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()

附包含新能源校验:

新能源
组成:省份简称(1位汉字)+发牌机关代号(1位字母)+序号(6位),总计8个字符,序号不能出现字母I和字母O
* 通用规则:不区分大小写,第一位:省份简称(1位汉字),第二位:发牌机关代号(1位字母)
* 序号位:
* 小型车,第一位:只能用字母D或字母F,第二位:字母或者数字,后四位:必须使用数字
* ---([DF][A-HJ-NP-Z0-9][0-9]{4})
* 大型车,前五位:必须使用数字,第六位:只能用字母D或字母F。
* ----([0-9]{5}[DF])

 /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[a-zA-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})$/

总结 

到此这篇关于python正则表达式完成车牌号检验的文章就介绍到这了,更多相关python正则检验车牌号内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • Django?事务回滚的具体实现

    Django?事务回滚的具体实现

    本文主要介绍了Django?事务回滚的具体实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • python实现事件驱动

    python实现事件驱动

    这篇文章主要为大家详细介绍了python实现事件驱动的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Python编程中的for循环语句学习教程

    Python编程中的for循环语句学习教程

    这篇文章主要介绍了Python编程中的for循环语句学习教程,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • Python实现将图片转换为ASCII字符画

    Python实现将图片转换为ASCII字符画

    这篇文章主要介绍了Python实现将图片转换为ASCII字符画,要将图片转换为字符图其实很简单,我们首先将图片转换为灰度图像,这样图片的每个像素点的颜色值都是0到255,然后我们选用一些在文字矩形框内占用面积从大到小的ASCII码字符
    2022-08-08
  • Python中NumPy的数组拆分

    Python中NumPy的数组拆分

    这篇文章主要介绍了Python中NumPy的数组拆分,我们使用array_split()分割数组,将要分割的数组和分割数传递给它,如果将一个数组拆分为 3 个数组,则可以像使用任何数组元素一样从结果中访问它们,需要的朋友可以参考下
    2023-07-07
  • Python OpenCV图像模糊处理介绍

    Python OpenCV图像模糊处理介绍

    大家好,本篇文章主要讲的是Python OpenCV图像模糊处理介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • 利用Pygame制作躲避僵尸游戏

    利用Pygame制作躲避僵尸游戏

    本文参考了神庙逃亡,利用Pygame实现一个人躲避僵尸的小游戏,主要的是精灵、精灵组之间相撞、相交的处理,感兴趣的可以了解一下
    2022-05-05
  • python os.system执行cmd指令代码详解

    python os.system执行cmd指令代码详解

    在本篇文章里小编给大家整理的是一篇关于python os.system执行cmd指令代码详解内容,有兴趣的朋友们可以学习下。
    2021-10-10
  • pytorch GAN伪造手写体mnist数据集方式

    pytorch GAN伪造手写体mnist数据集方式

    今天小编就为大家分享一篇pytorch GAN伪造手写体mnist数据集方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python利用google翻译方法实例(翻译字幕文件)

    python利用google翻译方法实例(翻译字幕文件)

    这篇文章主要给大家介绍了关于python利用google翻译(翻译字幕文件)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论

?


http://www.vxiaotou.com