python中正則表達(dá)式與模式匹配
一、前言
在之前找工作過程中,面試時(shí)經(jīng)常被問到會(huì)不會(huì)python,懂不懂正則表達(dá)式。心里想:軟件的東西和芯片設(shè)計(jì)有什么關(guān)系?咱也不知道因?yàn)樯队眠@個(gè),咱也不敢問啊!在網(wǎng)上搜索到了一篇關(guān)于腳本在ASIC領(lǐng)域中應(yīng)用的文章(原文見參考文獻(xiàn)1),里邊提到了python的用武之地:
本文以《Python編程快速上手——讓繁瑣工作自動(dòng)化》書中的示例,講述利用python實(shí)現(xiàn)文本中特定內(nèi)容提取的方式。
二、提取特定內(nèi)容示例
需求:找出文本中所有的電話號(hào)碼和郵件地址。設(shè)計(jì)方案:在剪貼板的文本中提取出所有與電話號(hào)碼和郵件地址格式匹配的字符串。有了需求和設(shè)計(jì)方案,現(xiàn)根據(jù)電話號(hào)碼和郵箱地址格式編寫正則表達(dá)式。先來看看程序代碼,再做講解。
PhoneAndEmail.py
此處電話號(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ào)以及.后的域名,域名由2-4個(gè)字母和數(shù)字集合組成。根據(jù)上述模式可編寫對(duì)應(yīng)的正則表達(dá)式。
python的模式匹配有一個(gè)簡單固定的 ,import導(dǎo)入re包,regex = re.compile('''<正則表達(dá)式>''
')。<模式匹配的內(nèi)容列表> = regex.findall(<待搜索字符串>)。三步搞定。編寫正則表達(dá)式時(shí),在字符串前加r防止字符轉(zhuǎn)義。將各個(gè)部分分組并換行以提高代碼的可讀性,此時(shí)需要將re.VERBOSE作為re.compile()函數(shù)的第二個(gè)參數(shù)傳入來忽略表達(dá)式中的空白和換行。
三、運(yùn)行結(jié)果
復(fù)制代碼首部注釋掉的文本,然后運(yùn)行程序。結(jié)果如下:
前兩行打印出了匹配內(nèi)容的列表,之后以自定義的統(tǒng)一格式打印欲搜索的內(nèi)容。程序運(yùn)行結(jié)果正確。本文以一個(gè)小例子測試了python正則表達(dá)式提取文本特定內(nèi)容的功能,之后想嘗試?yán)胮ython自動(dòng)生成verilogHDL中module的例化模板。
總結(jié)
以上所述是小編給大家介紹的python正則表達(dá)式匹配,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)我們網(wǎng)站的支持!
上一篇:python re庫的正則表達(dá)式入門學(xué)習(xí)教程
欄 目:正則表達(dá)式
下一篇:Python中正則表達(dá)式的用法總結(jié)
本文標(biāo)題:python中正則表達(dá)式與模式匹配
本文地址:http://mengdiqiu.com.cn/a1/zhengzebiaodashi/11180.html
您可能感興趣的文章
- 01-11正則表達(dá)式實(shí)現(xiàn)添加、刪除、替換三種功能
- 01-11python 用正則表達(dá)式篩選文本信息的實(shí)例
- 01-11正則表達(dá)式之匹配數(shù)字范圍
- 01-11python爬蟲正則表達(dá)式之處理換行符
- 01-11正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
- 01-11正則表達(dá)式截取身份證號(hào)碼加密的方法
- 01-11js正則表達(dá)式 匹配兩個(gè)特定字符間的內(nèi)容示例
- 01-11MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典實(shí)例總結(jié)
- 01-11python正則表達(dá)式之對(duì)號(hào)入座篇
- 01-11詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼驗(yàn)證


閱讀排行
本欄相關(guān)
- 01-11正則表達(dá)式實(shí)現(xiàn)添加、刪除、替換三
- 01-11正則表達(dá)式之匹配數(shù)字范圍
- 01-11python 用正則表達(dá)式篩選文本信息的實(shí)
- 01-11正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
- 01-11python爬蟲正則表達(dá)式之處理換行符
- 01-11js正則表達(dá)式 匹配兩個(gè)特定字符間的
- 01-11正則表達(dá)式截取身份證號(hào)碼加密的方
- 01-11python正則表達(dá)式之對(duì)號(hào)入座篇
- 01-11MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典
- 01-11詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10C#中split用法實(shí)例總結(jié)