Python for Informatics 第11章之正則表達(dá)式(二)
注:以下文章原文來自于Dr Charles Severance 的 《Python for Informatics》
11.1 正則表達(dá)式的字符匹配
我們可以用許多其它的特殊字符創(chuàng)建更加強(qiáng)大的正則表達(dá)式。最常用的特殊符號(hào)是可匹配任何字符的句號(hào)(".")。在以下的示例中,正則表達(dá)式”F..m:“將匹配”From:”,“Fxxm:",”F12m:“,或者”F!@m:“等類似字符串,因?yàn)楸磉_(dá)式中間的句號(hào)可匹配任何字符。
import re hand = open('mbox-short.txt') for line in hand: line = line.rstrip() if re.search('^F..m:', line): print line
在正則表達(dá)式中組合使用表示一個(gè)字符任意重復(fù)次數(shù)的星號(hào)(”*")和加號(hào)("+")會(huì)使表達(dá)式特別強(qiáng)大。其中星號(hào)表示在查找的字符串中,匹配字符可以重復(fù)出現(xiàn)零次以上,而加號(hào)則是重復(fù)一次以上。
在下面的示例中,我們使用重復(fù)的通配符進(jìn)一步縮小我們的查找范圍:
import re hand = open('mbox-short.txt') for line in hand: line = line.rstrip() if re.search('^From:.+@', line): print(line)
查找字符串“From:.+@”將成功匹配那些以“From:”開頭,接著跟著一個(gè)以上任意字符,再跟著一個(gè)“@”符的行。所以這會(huì)匹配類似以下的行:
From: stephen.marquard @uct.ac.za
這個(gè)".+"通配符擴(kuò)展匹配所有從冒號(hào)到@符之間的所有字符。
From:.+@
加號(hào)和星號(hào)符的“一意孤行”的被認(rèn)為是好的。例如以下的字符串將被外推至最后的@符而匹配:
From:stephen.marquard@uct.ac.za, csev@umich.edu, and cwen @iupui.edu
讓星號(hào)符和加號(hào)符不這么貪婪也是可以的,但是需要添加另外的符號(hào)。如何關(guān)閉它們貪婪的行為請參看詳細(xì)的文檔。
相關(guān)閱讀:
Python for Informatics 第11章 正則表達(dá)式(一)
Python for Informatics 第11章之正則表達(dá)式(四)
關(guān)于Python for Informatics 第11章 正則表達(dá)式(二)的相關(guān)內(nèi)容就給大家介紹這么多,后續(xù)還會(huì)持續(xù)更新,更多精彩內(nèi)容敬請關(guān)注!
相關(guān)文章
Python+Pygame實(shí)現(xiàn)簡單的射擊小游戲
要說什么游戲能夠獲得大家的喜愛,唯射擊游戲莫屬!本文將利用Python和Pygame庫制作一個(gè)簡單的射擊小游戲,感興趣的小伙伴可以了解一下2022-04-04python獲取點(diǎn)擊的坐標(biāo)畫圖形的方法
今天小編就為大家分享一篇python獲取點(diǎn)擊的坐標(biāo)畫圖形的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python入門教程(十一)Python中的運(yùn)算符
這篇文章主要介紹了Python入門教程(十一)Python中的運(yùn)算符,Python是一門非常強(qiáng)大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下2023-04-04Python多維/嵌套字典數(shù)據(jù)無限遍歷的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄狿ython多維/嵌套字典數(shù)據(jù)無限遍歷的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11