正規表示式 筆記

2022-06-11 12:24:10 字數 2260 閱讀 3660

1.表示式的格式: "/表示式/[修正符]" 

2.正規表示式的組成部分: 

1. 原子是組成正規表示式的基本單位,在分析正規表示式時,應作為乙個整體。 

原子包括以下內容: 

> 單個字元、數字,如a-z,a-z,0-9。 

> 模式單元,如(abc)可以理解為由多個原子組成的大的原子。 

> 原子表,如 [abc]。 

> 重新使用的模式單元,如:\\1 

> 普通轉義字元,如:\d, \d, \w 

> 轉義元字元,如:\*,\. 

> 元字元

*2.元字元(具有特殊意義字元): 

表示單個字元的原子表 

例如:[aoeiu] 表示任意乙個母音字母 

[0-9] 表示任意一位數字 

[a-z][0-9]表示小寫字和一位數字構成的兩位字元 

[a-za-z0-9] 表示任意一位大小字母或數字 

[^] 表示除中括號內原子之外的任何字元 是的取反 

例如:[^0-9] 表示任意一位非數字字元 

[^a-z] 表示任意一位非小寫字母 

表示對前面原子的數量控制,表示是m次 

例如:[0-9] 表示4為數字 

[1][3-8][0-9] 手機號碼 

表示對前面原子的數量控制,表示是至少m次          

例如: [0-9] 表示兩位及以上的數字 

表示對前面原子的數量控制,表示是m到n次 

例如: [a-z] 表示6到8位的小寫字母 

* 表示對前面原子的數量控制,表示是任意次,等價於 

+ 表示對前面原子的數量控制,表示至少1次,等價於 

? 表示對前面原子的數量控制,表示0次或1次(可有可無) 等價於 

例如:正整數:[1-9][0-9]* 

整數:[\-]?[0-9]+ 

email: 

() 表示乙個整體原子,【還有乙個子儲存單元的作用】。 

也可以使用?:來拒絕子儲存。 (?:.*?) 

|  表示或的意思 

(rea|blue) 字串red或blue 

^  用在正則單元塊的開頭處,表示必須以指定的開頭 

$  用在正則單元塊的結尾處,表示必須以指定的結尾 

.  表示任意乙個除換行符之外的字元 

常用組合: .*?  表示最小匹配所有字元(拒絕貪婪匹配) 

3. 普通轉義字元:

\d匹配乙個數字;等價於[0-9]

\d匹配除數字以外任何乙個字元;等價於[^0-9]

\w匹配乙個英文本母、數字或下劃線;等價於[0-9a-za-z_]

\w匹配除英文本母、數字和下劃線以外任何乙個字元;等價於[^0-9a-za-z_] 

\s匹配乙個空白字元;等價於[\f\n\r\t\v] 

\s匹配除空白字元以外任何乙個字元;等價於[^\f\n\r\t\v]

\f匹配乙個換頁符等價於 \x0c 或 \cl

\n匹配乙個換行符;等價於 \x0a 或 \cj 

\r匹配乙個回車符等價於\x0d 或 \cm

\t匹配乙個製表符;等價於 \x09\或\cl 

\v匹配乙個垂直製表符;等價於\x0b或\ck 

\onn

匹配乙個八進位制數字 

\xnn

匹配乙個十六進製制數字

\cc匹配乙個控制字元 

4. 模式修整符 

i 表示不區分大小寫; 

"/[a-za-z]/" <==>"/[a-z]/i" 

s 表示匹配視為單行(就是可以讓點.支援換行) 

u 表示拒絕貪婪匹配

5.正規表示式的() {} 的區別:

()和有本質的區別

()內的內容表示的是乙個表示式,()本身不匹配任何東西,也不惜那是匹配任何東西,只是把括號內的內容作為

同乙個表示式來處理,例如(ab),就表示ab一起連續出現最少1次,最多三次。如果沒有括號的話,ab,

就表示a 後面緊跟的b出現的最少一次,最多三次。另外,括號在匹配模式中也跟重要。這個就不延伸了。

表示匹配字元在中,兵出現一次,並且reshuffle字元寫在會被當成普通字元來匹配,例如[(a)],會匹配(、a、)、這三個字元。

所以() 無論是作用還是表示的含義。都有天壤之別,沒有什麼聯絡。

3.php小例項,**號碼驗證:

<?php

if ($_post) $/', $phnum);

if ($res)else

}

正規表示式 正規表示式函式 筆記

筆記直接使用pycharm製作,需要原始檔請私聊。正規表示式函式 1.match 2.search 3.全域性匹配函式 全域性匹配 re.compile 正規表示式 findall 資料 import re string poythonydasadcasa pat2 p.y 懶惰模式執行 較精準 r...

正規表示式筆記

不同的語系編碼的順序不一樣 lang c 0 1 2 3 a b c d z a b c d z lang zh cn 0 1 2 3 4 a a b b c c z z 使用正規表示式時,需要留意環境的語系是什麼,否則會有不同的結果 alnum 英文大小寫字元及數字 0 9 a z a z alp...

正規表示式筆記

d 0 9中的任意乙個數字 w a z,a z,0 9,中的任意乙個,即字母數字下劃線 s 空格,製表符,換頁符等空白字元的其中任意乙個 小數點可以匹配換行符 n 以外的任意乙個字元 匹配某範圍內的任意乙個字元 ab9 匹配 a b 9 中的任意乙個 abc 匹配abc之外的任意乙個字元 a g 匹...