Python正則表達(dá)式初識(shí)(一)

首先跟大家簡(jiǎn)單嘮叨兩句為什么要學(xué)習(xí)正則表達(dá)式,為什么在網(wǎng)絡(luò)爬蟲(chóng)的時(shí)候離不開(kāi)正則表達(dá)式。正則表達(dá)式在處理字符串的時(shí)候扮演著非常重要的角色,在網(wǎng)絡(luò)爬蟲(chóng)的時(shí)候也十分常用,大家可以把它學(xué)的簡(jiǎn)單一些,但是不能不學(xué)。

????盡管網(wǎng)絡(luò)爬蟲(chóng)相關(guān)庫(kù)給我們提供了豐富的庫(kù)如css、bs4、lxml等等,讓我們可以通過(guò)選擇器去匹配字符串,但是在HTML中數(shù)據(jù)往往存在標(biāo)簽之中。通過(guò)選擇器確實(shí)可以匹配到標(biāo)簽的內(nèi)容,但是有時(shí)候標(biāo)簽中存在的許多內(nèi)容是冗余的,而我們只需要匹配其中部分內(nèi)容即可(如匹配數(shù)字、時(shí)間等),如下圖所示。通過(guò)選擇器,我們一般可以獲取到“782好笑”這個(gè)字符串,但是我們只需要“782”這個(gè)數(shù)字的話,此時(shí)正則表達(dá)式就要派上用場(chǎng)了。

????正則表達(dá)式可以幫我們判斷某個(gè)字符串是否符合某一個(gè)模式,其次正則表達(dá)式可以幫我們提取某個(gè)字符串中的重要部分,做子字符串的提取。今天簡(jiǎn)單的給大家講解幾個(gè)正則表達(dá)式的特殊字符—— “^”、“.”、“*”,并且用實(shí)例進(jìn)行演示,讓大家對(duì)正則表達(dá)式有個(gè)初步的了解。

????小編用的Python是3版本,開(kāi)發(fā)環(huán)境用的是pycharm,首先在本地新建一個(gè)demo.py文件,接下來(lái)開(kāi)始進(jìn)行演示。

????1、正則表達(dá)式在Python中有個(gè)專門(mén)的庫(kù)叫re模塊,首先進(jìn)行導(dǎo)入模塊。再定義一個(gè)字符串str,然后定義一個(gè)正則表達(dá)式匹配規(guī)則regex。

????2、“^d”代表的意思是以d元素開(kāi)頭的任意一個(gè)字符串,也就是說(shuō)只要是以d開(kāi)頭的字符串,后面的元素不論是什么,都是符合規(guī)則的,總之必須要以d開(kāi)頭。

????3、“.” 較為常用,其代表的意思是任意字符,其表示的范圍非常廣,可以接任意字符,不論是中英文,還是下劃線之類的特殊字符,都是可以代表的。舉個(gè)栗子,正則表達(dá)式“^d.”就是代表以d開(kāi)頭的字符串,b后邊接任意字符都可以。

????4、“*” 也十分常用,其代表的意思是前面的字符可以重復(fù)任意多遍,可以是0次,1次,2次等任意多次。

????5、了解好這幾個(gè)特殊字符的用法之后,接下來(lái)通過(guò)代碼簡(jiǎn)單的感受一下。如下圖所示,如果匹配成功,則返回yes;如果沒(méi)有匹配成功,則不返回任何東西。

可以看到程序運(yùn)行之后,返回的結(jié)果為yes,說(shuō)明匹配成功。正則表達(dá)式“^d.*”代表的意思是以d開(kāi)頭的字符串,后面跟著任意字符,出現(xiàn)任意多遍。顯然,通過(guò)匹配可以得知該正則表達(dá)式匹配的結(jié)果和原始字符串一致,之后if判斷返回值為true,所以打印出結(jié)果為yes。

????6、為了進(jìn)一步驗(yàn)證這個(gè)模式是否正確,我們將b改為a,其代表的意思該模式下的字符串是否以a開(kāi)頭的。之后再次運(yùn)行程序,如下圖所示。

此時(shí)可以看到無(wú)任何輸出,說(shuō)明特殊字符“^”起到了作用。

????小伙伴們,快去打開(kāi)Python,感受一下正則表達(dá)式的大法吧~~~

--- End ---

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容