2019/3/15 Python今日收穫

Python day18——057論一隻爬蟲的自我修養5:正則表達式、

1.正則表達式中"."(點號)能夠匹配全部字符。若是要匹配點號則加上反斜槓(\)。正則表達式

 

2.匹配數字則用\d。spa

 

3.[ ]中括號用來建立字符類,能夠匹配其中的任意一個字符,可是注意正則表達式是區分大小寫的。例如:rre3d

re.search(r'[aeiou]','I love you') 結果是blog

匹配到了o字母,爲何沒有匹配開頭的I,由於他是大寫。ip

另:若這樣寫[a-z],則會匹配26個小寫字母。同理,也能夠寫[0-9],[1-9]這樣的字符類。io

 

4.能夠這樣寫re.search(r'ab{3}c','abbbc'),大括號表示要重複三次前面的字符 。效率

甚至能夠給重複次數一個範圍:re.search(r'ab{3,10}c','abbbc')三到十次均可以匹配。程序

 

5.那麼問題來了,如何匹配ip地址的0-255範圍呢:re.search(r'[01]\d\d|2[0-4]\d|25[0-5]','192')便可。im

可是ip地址的最後兩位可能出現個位數如:192.168.1.1,如何解決呢?db

re.search(r'[01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5]','192')設置前兩位重複一次或零次。

 

6. Python3  正則表達式特殊符號及用法

 

注:①*表示零到正無窮  ②+表示一到正無窮 ③?表示0或1.儘可能使用這三個符號而不是大括號,這樣程序會更簡潔,效率也會更高。

④*和+都是默認使用貪心策略,儘量多的匹配,若是要關閉貪心,則在+或*後面加上一個?便可。

 7.特殊符號分爲①元字符②\+特殊字符

\+元字符會使元字符失去原有的功能。

字符類是把[ ]內的內容當作普通字符匹配,除了幾個特殊字符,好比[a-z]表示a到z

 

相關文章
相關標籤/搜索