python中正則表達(dá)式與模式匹配
一、前言
在之前找工作過(guò)程中,面試時(shí)經(jīng)常被問(wèn)到會(huì)不會(huì)python,懂不懂正則表達(dá)式。心里想:軟件的東西和芯片設(shè)計(jì)有什么關(guān)系?咱也不知道因?yàn)樯队眠@個(gè),咱也不敢問(wèn)?。≡诰W(wǎng)上搜索到了一篇關(guān)于腳本在ASIC領(lǐng)域中應(yīng)用的文章(原文見(jiàn)參考文獻(xiàn)1),里邊提到了python的用武之地:

本文以《Python編程快速上手——讓繁瑣工作自動(dòng)化》書(shū)中的示例,講述利用python實(shí)現(xiàn)文本中特定內(nèi)容提取的方式。
二、提取特定內(nèi)容示例
需求:找出文本中所有的電話(huà)號(hào)碼和郵件地址。設(shè)計(jì)方案:在剪貼板的文本中提取出所有與電話(huà)號(hào)碼和郵件地址格式匹配的字符串。有了需求和設(shè)計(jì)方案,現(xiàn)根據(jù)電話(huà)號(hào)碼和郵箱地址格式編寫(xiě)正則表達(dá)式。先來(lái)看看程序代碼,再做講解。
PhoneAndEmail.py
此處電話(huà)號(hào)碼的格式是:三個(gè)數(shù)字組成的區(qū)號(hào)(可選),三個(gè)數(shù)字,四個(gè)數(shù)字,任意數(shù)空格+ext/x/ext.+任意數(shù)空格+2到5個(gè)數(shù)字組成的分機(jī)號(hào)(可選)。每個(gè)部分間以“-”號(hào)連接。郵箱地址格式:由字母、數(shù)字以及_%+-符號(hào)組成的用戶(hù)名,@符號(hào)以及.后的域名,域名由2-4個(gè)字母和數(shù)字集合組成。根據(jù)上述模式可編寫(xiě)對(duì)應(yīng)的正則表達(dá)式。
python的模式匹配有一個(gè)簡(jiǎn)單固定的套路,import導(dǎo)入re包,regex = re.compile('''<正則表達(dá)式>''')。<模式匹配的內(nèi)容列表> = regex.findall(<待搜索字符串>)。三步搞定。編寫(xiě)正則表達(dá)式時(shí),在字符串前加r防止字符轉(zhuǎn)義。將各個(gè)部分分組并換行以提高代碼的可讀性,此時(shí)需要將re.VERBOSE作為re.compile()函數(shù)的第二個(gè)參數(shù)傳入來(lái)忽略表達(dá)式中的空白和換行。
三、運(yùn)行結(jié)果
復(fù)制代碼首部注釋掉的文本,然后運(yùn)行程序。結(jié)果如下:

前兩行打印出了匹配內(nèi)容的列表,之后以自定義的統(tǒng)一格式打印欲搜索的內(nèi)容。程序運(yùn)行結(jié)果正確。本文以一個(gè)小例子測(cè)試了python正則表達(dá)式提取文本特定內(nèi)容的功能,之后想嘗試?yán)胮ython自動(dòng)生成verilogHDL中module的例化模板。
總結(jié)
以上所述是小編給大家介紹的python正則表達(dá)式匹配,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Python 語(yǔ)言實(shí)現(xiàn)六大查找算法
本文給大家分享Python 語(yǔ)言實(shí)現(xiàn)六大查找算法,針對(duì)每種算法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-06-06
Django框架ORM數(shù)據(jù)庫(kù)操作實(shí)例詳解
這篇文章主要介紹了Django框架ORM數(shù)據(jù)庫(kù)操作,結(jié)合實(shí)例形式詳細(xì)分析了Django框架ORM數(shù)據(jù)庫(kù)基本增刪改查與相關(guān)函數(shù)使用技巧,需要的朋友可以參考下2019-11-11
python打包exe開(kāi)機(jī)自動(dòng)啟動(dòng)的實(shí)例(windows)
今天小編就為大家分享一篇python打包exe開(kāi)機(jī)自動(dòng)啟動(dòng)的實(shí)例(windows),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Django數(shù)據(jù)庫(kù)遷移常見(jiàn)使用方法
這篇文章主要介紹了Django數(shù)據(jù)庫(kù)遷移常見(jiàn)使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
如何使用python傳入不確定個(gè)數(shù)參數(shù)
這篇文章主要介紹了如何使用python傳入不確定個(gè)數(shù)參數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Numpy中創(chuàng)建數(shù)組的9種方式小結(jié)
本文主要介紹了Numpy中創(chuàng)建數(shù)組的9種方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
python?Opencv實(shí)現(xiàn)停車(chē)位識(shí)別思路詳解
這篇文章主要介紹了Opencv實(shí)現(xiàn)停車(chē)位識(shí)別,本文通過(guò)示例代碼場(chǎng)景分析給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
Python實(shí)現(xiàn)改變與矩形橡膠的線(xiàn)條的顏色代碼示例
這篇文章主要介紹了Python實(shí)現(xiàn)改變與矩形橡膠的線(xiàn)條的顏色代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01

