華為架構師詳解Python 正則表示式

正則表示式

用來處理字串,對字串進行檢索和替換,另外正則在python爬蟲的應用也是相當廣泛!

特點

靈活性、邏輯性和功能性非常強

可以迅速地用極簡單的方式達到字串的複雜控制

正則的寫法

。(點號): 表示任意一個字元,除了\n,比如查詢所有的一個字元 。

[]: 匹配中括號中列舉的任意字元,比如[L,Y,0], LLY, Y0, LIU

\d: 任意一個數字

\D: 除了數字都可以

\s: 表示空格,tab鍵

\S: 除了空白符號

\w: 單詞字元,就是a-z, A-Z, 0-9, _

\W: 除了“\w”表示的都可以

: 表示前面內容重複零次或者多次, \w

+: 表示前面內容至少出現一次

?: 前面才出現的內容零次或者一次

{m,n}: 允許前面內容出現最少m次,最多n次

^: 匹配字串的開始

$: 匹配字串的結尾

\b: 匹配單詞的邊界

(): 對正則表示式內容進行分組,從第一個括號開始,編號逐漸增大

華為架構師詳解Python 正則表示式

\A: 只匹配字串開頭,\Aabcd, 則abcd

\Z: 只匹配字串末尾,abcd\Z, abcd

|: 左右任意一個

(?P。。。): 分組,除了原來的編號再製定一個別名,(?P12345){2}, 1234512345

(?P=name): 引用分組

RE使用大致步驟

使用compile將表示正則的字串編譯為一個pattern物件

透過pattern物件提供一系列方法度文字進行查詢匹配,獲得匹配結果,一個Match物件

最後使用Match物件提供的屬性和方法獲得資訊,根據需要進行操作

RE常用函式

group(): 獲得一個或者多個分組匹配的字串,當要獲得整個匹配的子串時,直接使用group或者group(0)

start: 獲取分組匹配的子串在整個字串中的起始位置,引數預設0

end: 獲取分組匹配的子串在整個字串中的結束位置,預設為0

span: 返回的結構技術(start(group), end(group))

華為架構師詳解Python 正則表示式

華為架構師詳解Python 正則表示式

search(str, [, pos[, endpos]]): 在字串中查詢匹配,pos和endpos表示起始位置

findall: 查詢所有

finditer:查詢,返回一個iter結果

華為架構師詳解Python 正則表示式

sub 替換

sub(rep1, str[, count])

華為架構師詳解Python 正則表示式

匹配中文

大部分中文表示範圍是[u4e00-u9fa5], 不包括全形標點

華為架構師詳解Python 正則表示式

貪婪和非貪婪

貪婪:儘可能多的匹配, (*)表示貪婪匹配

非貪婪:找到符合條件的最小內容即可,(?)表示非貪婪

正則預設使用貪婪匹配

華為架構師詳解Python 正則表示式

通曉任何一門程式語言,都需求透過大量的實踐來積累經驗,解決遇到的各種疑難問題,看別人的原始碼,分享自己的分碼的這個程序,才能夠通曉Python的方方面面。一個對Python程式能算的上通曉的程式設計師,對相同一個問題,他知道很多種解決問題的方法,並能從中挑選最有功率的方法!安排

華為架構師詳解Python 正則表示式