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

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

前兩行打印出了匹配內(nèi)容的列表,之后以自定義的統(tǒng)一格式打印欲搜索的內(nèi)容。程序運行結(jié)果正確。本文以一個小例子測試了python正則表達(dá)式提取文本特定內(nèi)容的功能,之后想嘗試?yán)胮ython自動生成verilogHDL中module的例化模板。
總結(jié)
以上所述是小編給大家介紹的python正則表達(dá)式匹配,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Numpy中創(chuàng)建數(shù)組的9種方式小結(jié)
本文主要介紹了Numpy中創(chuàng)建數(shù)組的9種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
python?Opencv實現(xiàn)停車位識別思路詳解
這篇文章主要介紹了Opencv實現(xiàn)停車位識別,本文通過示例代碼場景分析給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
Python實現(xiàn)改變與矩形橡膠的線條的顏色代碼示例
這篇文章主要介紹了Python實現(xiàn)改變與矩形橡膠的線條的顏色代碼示例,具有一定借鑒價值,需要的朋友可以參考下2018-01-01

