您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Python正則表達(dá)式特別之處是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python正則表達(dá)式特別之處是什么”吧!
一、什么是Python正則表達(dá)式
在編寫處理字符串的程序或網(wǎng)頁時,經(jīng)常會有查找符合某些復(fù)雜規(guī)則(或稱為模式)的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則(或模式)的工具。換句話說,正則表達(dá)式就是記錄文本規(guī)則的代碼。一旦發(fā)現(xiàn)了符合要求的文本,就可以用對其進(jìn)行相應(yīng)的修改了。
大家還記得Windows命令行中用于文件查找的通配符吧,即*和?。當(dāng)我們查找某目錄下所有的PDF文檔的時候,只要搜索*.pdf即可。在這里,*會被解釋成任意的字符串。和通配符類似,正則表達(dá)式也是用來進(jìn)行文本匹配的工具,只不過較之于通配符,它能更精確地描述你的需求,例如用來查找一個web頁面中的所有電話號碼。
我們知道,電話號碼一般都有一個固定的寫法:區(qū)號-電話號碼,即有以0開頭,后跟2-3個數(shù)字,然后是一個連字號“-”,***是7或8位數(shù)字組成的字符串(例如010-12345678或0634-1234567)。
二、最簡單的正則表達(dá)式
學(xué)習(xí)正則表達(dá)式的***方法是從具體的示例入手,讓讀者親自動手實(shí)驗(yàn)。下面給出了不少簡單的例子,并對它們作了詳細(xì)的說明。當(dāng)我們在一字符串中查找to,你可以使用正則表達(dá)式to。這幾乎是最簡單的正則表達(dá)式了,它可以精確匹配這樣的字符串;
由兩個字符組成,前一個字符是t,后一個是o。為了演示,我們提供了一個函數(shù)re_show(),可以把看作是re模塊的一個封裝器,它會把給定的字符串中匹配(說某個字符串與某個正則表達(dá)式匹配。
通常是指這個字符串里有一部分或幾部分或全部能滿足表達(dá)式給出的條件)的內(nèi)容加上一個花括號。現(xiàn)在我們不對該函數(shù)做進(jìn)一步的介紹。您只要知道re_show()的***個參數(shù)是一個Python正則表達(dá)式,第二個參數(shù)是要匹配的字符串,當(dāng)找到匹配的內(nèi)容時,就用花括號將它括起來就行了。還是源代碼如下:
import re def re_show(pat, s): print re.compile(pat, re.M).sub("{\g<0>}", s.rstrip()),'\n' s = '''Python runs on Windows, Linux/Unix, Mac OS X, OS/2, Amiga, Palm Handhelds, and Nokia mobile phones. Python has also been ported to the Java and .NET virtual machines.''' re_show("to",s)
其中,函數(shù)調(diào)用re_show("to",s)的作用就是查找字符串s中是否包含字符串to,或者說字符串s是否匹配正則表達(dá)式to;如果匹配的話,就給字符串to加上花括號。
三、匹配單詞的Python正則表達(dá)式
我們看到,如果僅僅要求找出文本中的字符串to的話,上面的正則表達(dá)式還是可以的,但是如果要想匹配文本中的單詞to的話,上面的正則表達(dá)式to就不夠用了。例如,將上面的代碼中的字符串s的定義改為下面的樣子:
s = '''In company or association with respect to place or time; as, to live together in one house; to live together in the same age; they walked together to the town.'''
我們發(fā)現(xiàn),上面的文字中,不僅單詞to,此外像together和town這些單詞中也包含字符串to,如果這時再用上面的Python正則表達(dá)式to來查找“單詞”to的話,就會出錯了。
到此,相信大家對“Python正則表達(dá)式特別之處是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。