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 匹...