正規表示式筆記

2021-09-23 13:20:59 字數 1280 閱讀 3612

這個只是簡單的運用,更為複雜的使用需要在實際運用中琢磨。。。。。

參考鏈結

「\b」:用於標識開頭或者結尾

「^」:用於標識乙個匹配字元的開始

「$」:用於標識乙個匹配字元的結束

「.」:用於標識除換行之外的任意字元

「\s」:用於標識乙個空字元

「\w」:用於標識乙個數字、字母、漢字、下劃線

「\d」:用於標識一位數字

大寫的符號將會用於判斷為「非。。。」的存在。

「\s」:標識乙個非空字元的位置

「\w」:標識乙個非數字、字母、漢字、下劃線的字元

「\d」:標識乙個非數字的佔位

也可以通過「^」+「」符號進行非判斷:

「[^abcd]」:除abcd以外的字元

「*」:用於標識數量,任意次數(0-任意多次)

「+」:用於標識數量,任意次數(1-任意多次)

「?」:標識數量 0 或 1 次

「」:重複n次

「」:重複 n-任意多次

「」:重複 n-m 次

「\」:轉義字元

「」:字符集,處於這個區域的字元將被單個進行匹配,也可以設定通用字符集[a-za-z0-9]等

「|」:標識乙個分歧條件,可以多個串聯,但是嚴格執行從左至右的順序

「()」:分組標識,向後引用

這個標識將會定義乙個分組,如果沒有指定分組標識,將會自動以數字進行標識,0是代表整個表示式,1開始是從左至右依次未命名小組的預設命名。

指定小組名稱:(?『name』)或者 (?)先指定有名字的,後指定沒名字的,所以數字永遠大於姓名。

使用小組:通過「\k」 進行指定,可以理解為將小組中的指令重新執行一遍,但實際上則是,小組在執行的過程中將結果進行了抓取,後面只不過是呼叫它的抓取結果。

「(?=exp)」:零寬斷言

這個斷言就是乙個是不是的判斷語句,是就返回,不是就不返回。

後面的exp是要判斷的標準,「=」:找到目標位置,就取前面的;「<=」:找到目標位置,取後面的。

需要注意的是:都是不包含exp本身的。

「(?=!exp)」

和零寬斷言的區別就是exp本身是不消耗佔位的,也就是判斷它不會跳過任何位置,它的作用就是用來判斷的,零寬斷言是對下乙個目標進行判斷,如果是正確的話,就會消耗乙個佔位,這樣的話後續的判斷就會順移一位。而負向斷言就不會出現這樣的問題。

預設情況下,匹配的原則是貪婪模式,它會盡可能的多匹配內容。如果想要匹配盡可能少的內容需要手動配置懶惰模式:在匹配條件後新增「?」

.*? 將會匹配最少的次數

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

筆記直接使用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 匹...