這個只是簡單的運用,更為複雜的使用需要在實際運用中琢磨。。。。。「\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 匹...