Python for Informatics 第11章之正則表達式(二)
注:以下文章原文來自于Dr Charles Severance 的 《Python for Informatics》
11.1 正則表達式的字符匹配
我們可以用許多其它的特殊字符創(chuàng)建更加強大的正則表達式。最常用的特殊符號是可匹配任何字符的句號(".")。在以下的示例中,正則表達式”F..m:“將匹配”From:”,“Fxxm:",”F12m:“,或者”F!@m:“等類似字符串,因為表達式中間的句號可匹配任何字符。
import re hand = open('mbox-short.txt') for line in hand: line = line.rstrip() if re.search('^F..m:', line): print line
在正則表達式中組合使用表示一個字符任意重復(fù)次數(shù)的星號(”*")和加號("+")會使表達式特別強大。其中星號表示在查找的字符串中,匹配字符可以重復(fù)出現(xiàn)零次以上,而加號則是重復(fù)一次以上。
在下面的示例中,我們使用重復(fù)的通配符進一步縮小我們的查找范圍:
import re hand = open('mbox-short.txt') for line in hand: line = line.rstrip() if re.search('^From:.+@', line): print(line)
查找字符串“From:.+@”將成功匹配那些以“From:”開頭,接著跟著一個以上任意字符,再跟著一個“@”符的行。所以這會匹配類似以下的行:
From: stephen.marquard @uct.ac.za
這個".+"通配符擴展匹配所有從冒號到@符之間的所有字符。
From:.+@
加號和星號符的“一意孤行”的被認為是好的。例如以下的字符串將被外推至最后的@符而匹配:
From:stephen.marquard@uct.ac.za, csev@umich.edu, and cwen @iupui.edu
讓星號符和加號符不這么貪婪也是可以的,但是需要添加另外的符號。如何關(guān)閉它們貪婪的行為請參看詳細的文檔。
相關(guān)閱讀:
Python for Informatics 第11章 正則表達式(一)
Python for Informatics 第11章之正則表達式(四)
關(guān)于Python for Informatics 第11章 正則表達式(二)的相關(guān)內(nèi)容就給大家介紹這么多,后續(xù)還會持續(xù)更新,更多精彩內(nèi)容敬請關(guān)注!
相關(guān)文章
Python多維/嵌套字典數(shù)據(jù)無限遍歷的實現(xiàn)
下面小編就為大家?guī)硪黄狿ython多維/嵌套字典數(shù)據(jù)無限遍歷的實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11