正規表示式

2022-08-19 01:54:14 字數 2937 閱讀 5213

正規表示式本身也和python沒有什麼關係,就是匹配字串內容的一種規則

官方定義:正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。

正規表示式 字串的規則

來幫助我們1.檢測某一段字串是否符合規則

2.從一大段文字中將符合規則的匹配出來 ( 爬蟲)

只和字串相關 

字元組 : [字元組]

在同乙個位置可能出現的各種字元組成了乙個字元組,在正規表示式中用表示 

字元:[012345]   

[0-5]    

[0-9]

[9-0]  不能從大到小來規定範圍

字元組內所有的範圍都是根據ascii碼來的

數字    

[0-9]

字母     

小寫 [a-z]    

大寫 [a-z]     

大小寫 [a-za-z]

數字和大小寫字母    [a-z0-9a-z]

數字+大小寫字母+下劃線   

[a-z0-9a-z_]

在字元組當中 -是有特殊意義的,如果我們想取消這個橫槓的特殊意義          

需要使用\作為轉義符

字元組之外的其他帶有特殊規則的元字元:

[0-9]    \d 匹配任意乙個數字 digit

[a-z0-9a-z_]    \w 識別符號

\n 匹配回車換行

\t 匹配製表符 table

空格 本身匹配 空格

\s 匹配所有的空白

\b 匹配乙個單詞的邊界

反義詞\w 除了數字字母下劃線之外的所有

\d 除了數字之外的所有

\s 除了空白之外的所有

. 匹配換行符之外的所有字元

\d \w \s(\n \t)

\d \w \s

.匹配所有 :[\d\d] [\w\w] [\s\s]

非字元組 :[^123]除了123之外的都匹配

開始符和結束符

^ 永遠在乙個規則的最開始

$ 永遠在乙個規則的最末尾

^和$ 規定了這個字串的長度,並且在這個長度內的內容

| 或的概念

分組的概念

總結\d \w \s \n \t \d \w \s \b

,[^]

^ $|   或 永遠把相對長的規則放在左側().

元字元

匹配內容

. 匹配除換行符以外的任意字元

\w匹配字母或數字或下劃線

\s匹配任意的空白符

\d匹配數字

\n匹配乙個換行符

\t匹配乙個製表符

\b匹配乙個單詞的結尾

^匹配字串的開始

$匹配字串的結尾

\w

匹配非字母或數字或下劃線

\d

匹配非數字

\s

匹配非空白符

a|b

匹配字元a或字元b

()

匹配括號內的表示式,也表示乙個組

[...]

匹配字元組中的字元

[^...]

匹配除了字元組中字元的所有字元

量詞:量詞  在量詞的範圍內盡可能多的匹配

表示出現n次

表示至少出現n次

表示出現n-m次

? 表示匹配0次或1次

+ 表示匹配1次或多次

* 表示匹配0次或多次

元字元 量詞

匹配的是乙個字元的內容

量詞 表示的是匹配的次數

匹配整數          

[1-9]\d*|0

匹配小數          

\d+\.\d+

匹配乙個整數或者小數           

\d+\.\d+|([1-9]\d*|0)           

\d+\.?\d*           

\d+(\.\d+)?

在量詞範圍內盡可能多的匹配 - 貪婪匹配

正規表示式 匹配身份證號碼

15位       

首位不能為0           

^[1-9]\d$

18位     

首位不能為0,末尾可能是x和數字            

^[1-9]\d[\dx]$

合起來            

^([1-9]\d[\dx]|[1-9]\d)$               

[1-9]\d(\d[\dx])?

量詞

用法說明

*重複零次或更多次

+重複一次或更多次

?重複零次或一次

重複n次

重複n次或更多次

重複n到m次

轉義在測試的網頁上寫的是什麼

就直接複製過來

然後在字串外面加上乙個r

r'\\n' --> r'\n'

t 't'

\t  \本身具有轉義作用,相當於改變了t本來的面目

\\  \本身具有轉義作用,\\相當於轉義了\的特殊作用,相當於普通的乙個'\'

貪婪匹配 :預設的 盡可能多匹配

惰性匹配 :需要我們手動設定的 盡可能少匹配

a.* 以a開頭的任意乙個字串都可以被匹配出來

a.*? 非貪婪

a.*?x 從a開始匹配,匹配任意長度的字元,遇到乙個x就立即停止

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...