1.\b不匹配字元,只匹配乙個位置:它的前乙個字元或者後乙個字元不全是(乙個是,乙個不是或不存在)\w。
2.\s匹配任意的空白符,包括空格,製表符(tab),換行符,中文全形空格等。
3.\w匹配字母或數字或下劃線或漢字等。
4..匹配換行符(\n)以外的任意字元。
5.\d匹配數字。
6.^匹配字串的開始。
7.$匹配字串的結束。
8.\d,匹配不少於5,不多於10個數字字串。
9.|意為或,從左到右匹配分支條件。
10.用來自定義範圍,-範圍符號,
[123],為1,2,3中的乙個,
[1-3],1到3,
[a-za-z0-9],大小寫英文+數字,等同\w(如果只考慮英文的話)
11.()標記乙個子表示式,預設自動命名(從1開始),在後續表示式中可以引用該子表示式所捕獲到的文字:
\b(\w+)\b\s+\1\b 可以匹配 go go, kitty kitty等, (\w+)表示式被自動命名為1被後文引用:\1
自定義命名,用(?exp)或(?'name'exp),引用方式用\k或\k'name':
\b(?\w+)\b\s+\k\b
\b(?'love'\w+)\b\s+\k'love'\b
不捕獲文字,也不自動命名分組:
(?:exp)
用專業術語來說,這個叫做分組以及後向引用,哈哈哈。。
12.(?=exp) \b\w+(?=ing\b)匹配以ing結尾的單詞的前面部分(除了ing以外的部分)
(?<=exp) (?<=start)\w+\b匹配以start開頭的單詞的後半部分(除了start以外的部分)
13.q(?!\d)匹配q後面不跟著乙個數字,並且不消費字元,後續的匹配從q後第二個字元開始
而^\d則會消費字元,後續的匹配從q後第乙個字元開始
14.單行模式匹配只是更改.的含義,使它與每乙個字元匹配(包括換行符\n)
多行模式則是更改^和$的含義,使它們分別在任意一行的行首和行尾匹配(不再是整個字串的開頭和結尾)
名字讓人疑惑,但其實兩種模式可以同時開啟。
正規表示式 正規表示式函式 筆記
筆記直接使用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 匹...