1. 程式人生 > >Python正則表示式初識(一)

Python正則表示式初識(一)

首先跟大家簡單嘮叨兩句為什麼要學習正則表示式,為什麼在網路爬蟲的時候離不開正則表示式。正則表示式在處理字串的時候扮演著非常重要的角色,在網路爬蟲的時候也十分常用,大家可以把它學的簡單一些,但是不能不學。

儘管網路爬蟲相關庫給我們提供了豐富的庫如css、bs4、lxml等等,讓我們可以通過選擇器去匹配字串,但是在HTML中資料往往存在標籤之中。通過選擇器確實可以匹配到標籤的內容,但是有時候標籤中存在的許多內容是冗餘的,而我們只需要匹配其中部分內容即可(如匹配數字、時間等),如下圖所示。通過選擇器,我們一般可以獲取到“782好笑”這個字串,但是我們只需要“782”這個數字的話,此時正則表示式就要派上用場了

正則表示式可以幫我們判斷某個字串是否符合某一個模式,其次正則表示式可以幫我們提取某個字串中的重要部分,做子字串的提取。今天簡單的給大家講解幾個正則表示式的特殊字元—— “^”、“.”、“*”,並且用例項進行演示,讓大家對正則表示式有個初步的瞭解。

小編用的Python是3版本,開發環境用的是pycharm,首先在本地新建一個demo.py檔案,接下來開始進行演示。

1、正則表示式在Python中有個專門的庫叫re模組,首先進行匯入模組。再定義一個字串str,然後定義一個正則表示式匹配規則regex。

2、“^d”代表的意思是以d元素開頭的任意一個字串,也就是說只要是以d開頭的字串,後面的元素不論是什麼,都是符合規則的,總之必須要以d開頭。

3、“.” 較為常用,其代表的意思是任意字元,其表示的範圍非常廣,可以接任意字元,不論是中英文,還是下劃線之類的特殊字元,都是可以代表的。舉個栗子,正則表示式“^d.”就是代表以d開頭的字串,b後邊接任意字元都可以。

4、“*” 也十分常用,其代表的意思是前面的字元可以重複任意多遍,可以是0次,1次,2次等任意多次。

5、瞭解好這幾個特殊字元的用法之後,接下來通過程式碼簡單的感受一下。如下圖所示,如果匹配成功,則返回yes;如果沒有匹配成功,則不返回任何東西。

可以看到程式執行之後,返回的結果為yes,說明匹配成功。正則表示式“^d.*”代表的意思是以d開頭的字串,後面跟著任意字元,出現任意多遍。顯然,通過匹配可以得知該正則表示式匹配的結果和原始字串一致,之後if判斷返回值為true,所以打印出結果為yes。

6、為了進一步驗證這個模式是否正確,我們將b改為a,其代表的意思該模式下的字串是否以a開頭的。之後再次執行程式,如下圖所示。

此時可以看到無任何輸出,說明特殊字元“^”起到了作用。

小夥伴們,快去開啟Python,感受一下正則表示式的大法吧~~~