您好,登錄后才能下訂單哦!
首先跟大家簡單嘮叨兩句為什么要學(xué)習(xí)正則表達(dá)式,為什么在網(wǎng)絡(luò)爬蟲的時(shí)候離不開正則表達(dá)式。正則表達(dá)式在處理字符串的時(shí)候扮演著非常重要的角色,在網(wǎng)絡(luò)爬蟲的時(shí)候也十分常用,大家可以把它學(xué)的簡單一些,但是不能不學(xué)。
盡管網(wǎng)絡(luò)爬蟲相關(guān)庫給我們提供了豐富的庫如css、bs4、lxml等等,讓我們可以通過選擇器去匹配字符串,但是在HTML中數(shù)據(jù)往往存在標(biāo)簽之中。通過選擇器確實(shí)可以匹配到標(biāo)簽的內(nèi)容,但是有時(shí)候標(biāo)簽中存在的許多內(nèi)容是冗余的,而我們只需要匹配其中部分內(nèi)容即可(如匹配數(shù)字、時(shí)間等),如下圖所示。通過選擇器,我們一般可以獲取到“782好笑”這個(gè)字符串,但是我們只需要“782”這個(gè)數(shù)字的話,此時(shí)正則表達(dá)式就要派上用場了
正則表達(dá)式可以幫我們判斷某個(gè)字符串是否符合某一個(gè)模式,其次正則表達(dá)式可以幫我們提取某個(gè)字符串中的重要部分,做子字符串的提取。今天簡單的給大家講解幾個(gè)正則表達(dá)式的特殊字符—— “^”、“.”、“*”,并且用實(shí)例進(jìn)行演示,讓大家對(duì)正則表達(dá)式有個(gè)初步的了解。
小編用的Python是3版本,開發(fā)環(huán)境用的是pycharm,首先在本地新建一個(gè)demo.py文件,接下來開始進(jìn)行演示。
1、正則表達(dá)式在Python中有個(gè)專門的庫叫re模塊,首先進(jìn)行導(dǎo)入模塊。再定義一個(gè)字符串str,然后定義一個(gè)正則表達(dá)式匹配規(guī)則regex。
2、“^d”代表的意思是以d元素開頭的任意一個(gè)字符串,也就是說只要是以d開頭的字符串,后面的元素不論是什么,都是符合規(guī)則的,總之必須要以d開頭。
3、“.” 較為常用,其代表的意思是任意字符,其表示的范圍非常廣,可以接任意字符,不論是中英文,還是下劃線之類的特殊字符,都是可以代表的。舉個(gè)栗子,正則表達(dá)式“^d.”就是代表以d開頭的字符串,b后邊接任意字符都可以。
4、“*” 也十分常用,其代表的意思是前面的字符可以重復(fù)任意多遍,可以是0次,1次,2次等任意多次。
5、了解好這幾個(gè)特殊字符的用法之后,接下來通過代碼簡單的感受一下。如下圖所示,如果匹配成功,則返回yes;如果沒有匹配成功,則不返回任何東西。
可以看到程序運(yùn)行之后,返回的結(jié)果為yes,說明匹配成功。正則表達(dá)式“^d.*”代表的意思是以d開頭的字符串,后面跟著任意字符,出現(xiàn)任意多遍。顯然,通過匹配可以得知該正則表達(dá)式匹配的結(jié)果和原始字符串一致,之后if判斷返回值為true,所以打印出結(jié)果為yes。
6、為了進(jìn)一步驗(yàn)證這個(gè)模式是否正確,我們將b改為a,其代表的意思該模式下的字符串是否以a開頭的。之后再次運(yùn)行程序,如下圖所示。
此時(shí)可以看到無任何輸出,說明特殊字符“^”起到了作用。
小伙伴們,快去打開Python,感受一下正則表達(dá)式的大法吧~~~
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。