python正則表達(dá)式完成車(chē)牌號(hào)檢驗(yàn)的代碼實(shí)例
正則表達(dá)式:
對(duì)于車(chē)牌而言,選用的正則表達(dá)式是"^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊A-Z]{1}[A-Z]{1}\s{1}[A-Z0-9]{4}[A-Z0-9掛學(xué)警港澳]{1}$",使用re模塊中的findall方法可以對(duì)輸入的車(chē)牌進(jìn)行合法性判定
對(duì)實(shí)驗(yàn)要求,可以大致拆分為以下幾個(gè)部分:
- 設(shè)置主循環(huán):將文件以追加讀寫(xiě)的方式打開(kāi),進(jìn)行合法性判斷、對(duì)非法的舍棄、合法中重復(fù)的位置定位,不重復(fù)的寫(xiě)入、關(guān)閉文件保存
- 合法性判斷:首先定義了一個(gè)正則表達(dá)式,并使用其進(jìn)行合法性判斷
- 合法性重復(fù)性判斷:設(shè)立一個(gè)列表,使用append方法將每次輸入的字符都加入其尾,使用列表的count方法計(jì)算每次寫(xiě)入的字符串是否有重復(fù),由于count會(huì)返回其在列表中的次數(shù),一旦次數(shù)超過(guò)1,我們就判定為重復(fù),屆時(shí)使用列表的index方法返回的坐標(biāo)+1即其在文本文件中第幾行出現(xiàn),打印出即可
實(shí)驗(yàn)測(cè)試結(jié)果如下:
可以看到輸入的車(chē)牌號(hào)可以為漢字也可以是全英文,對(duì)車(chē)牌號(hào)數(shù)字?jǐn)?shù)量不夠或車(chē)牌號(hào)輸入錯(cuò)誤都會(huì)判定為輸入非法,而正確的非重復(fù)的會(huì)將其保存至文本文件里,正確的重復(fù)的將不會(huì)保存。


源代碼:
import re
paizi=[]
pattern_str = "^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊A-Z]{1}[A-Z]{1}\s{1}[A-Z0-9]{4}[A-Z0-9掛學(xué)警港澳]{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('輸入車(chē)牌號(hào)')
fp_exercise4 = open(r'D:\浙理課程相關(guān)資料\2022-2023上\python\exercise4_test.txt', 'a+')
if is_car_number(pattern_str, string_str)==2:
print("輸入非法,請(qǐng)重新輸入")
else:
paizi.append(string_str)#加到列表中,用于判定重復(fù)
if paizi.count(string_str)==2:#檢測(cè)到重復(fù)信號(hào)
print("該車(chē)牌已經(jīng)存在!它在第{}行".format(paizi.index(string_str)+1))
else:
print("輸入正確,已保存!")
fp_exercise4.write(string_str + '\n')
fp_exercise4.close()附包含新能源校驗(yàn):
新能源
組成:省份簡(jiǎn)稱(chēng)(1位漢字)+發(fā)牌機(jī)關(guān)代號(hào)(1位字母)+序號(hào)(6位),總計(jì)8個(gè)字符,序號(hào)不能出現(xiàn)字母I和字母O
* 通用規(guī)則:不區(qū)分大小寫(xiě),第一位:省份簡(jiǎn)稱(chēng)(1位漢字),第二位:發(fā)牌機(jī)關(guān)代號(hào)(1位字母)
* 序號(hào)位:
* 小型車(chē),第一位:只能用字母D或字母F,第二位:字母或者數(shù)字,后四位:必須使用數(shù)字
* ---([DF][A-HJ-NP-Z0-9][0-9]{4})
* 大型車(chē),前五位:必須使用數(shù)字,第六位:只能用字母D或字母F。
* ----([0-9]{5}[DF])
/^([京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領(lǐng)A-Z]{1}[a-zA-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))|[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領(lǐng)A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學(xué)警港澳]{1})$/
總結(jié)
到此這篇關(guān)于python正則表達(dá)式完成車(chē)牌號(hào)檢驗(yàn)的文章就介紹到這了,更多相關(guān)python正則檢驗(yàn)車(chē)牌號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python?數(shù)據(jù)挖掘算法的過(guò)程詳解
這篇文章主要介紹了python?數(shù)據(jù)挖掘算法,首先給大家介紹了數(shù)據(jù)挖掘的過(guò)程,基于sklearn主要的算法模型講解,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
python實(shí)現(xiàn)的jpg格式圖片修復(fù)代碼
這篇文章主要介紹了python實(shí)現(xiàn)的jpg格式圖片修復(fù)代碼,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04
python實(shí)現(xiàn)猜數(shù)字小游戲
這篇文章主要,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下介紹了Python實(shí)現(xiàn)猜數(shù)字小游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
python使用pyecharts庫(kù)畫(huà)地圖數(shù)據(jù)可視化的實(shí)現(xiàn)
這篇文章主要介紹了python使用pyecharts庫(kù)畫(huà)地圖數(shù)據(jù)可視化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03

