一 正則表達式python
首先, 咱們在網頁上進行行註冊或者登錄的時候常常能看到一些格式上的錯誤提示. 好比:
你在註冊百度帳號的時候 https://passport.baidu.com/v2/?reg®Type=1&tpl=wk 輸入用戶
名隨意的輸入系統會提示你. 你的帳號過長或者不容許使用中文等等操做. 那這種操做若是使
用咱們現有的知識點是能夠完成的. 可是完成的效果並很差. 寫起來也不容易易. 尤爲是對郵箱
的匹配. 電話號碼的匹配. 那正則表達式就是專門來處理理相似問題的一種表達式. 英文全
稱: Regular Expression. 簡稱 regex或者re. 但你要知道咱們在使用python的re模塊以前. 我
們首先要對正則有必定的了了解和認識. 就像咱們使用time模塊以前. 咱們已經對時間有了必定
的認識.
正則表達式是對字符串操做的一種邏輯公式. 咱們通常使用正則表達式對字符串進行匹
配和過濾. 使用正則的優缺點:
優勢: 靈活, 功能性強, 邏輯性強.
缺點: 上手難. 一旦上手, 會愛上這個東西
工具: 各大文本編輯器通常都有正則匹配功能. 咱們也能夠去
http://tool.chinaz.com/regex/進行在線測試.
正則表達式由普通字符和元字符組成. 普通字符包含大小寫字母, 數字. 在匹配普通字符
的時候咱們直接寫就能夠了. 好比"abc" 匹配的就是"abc". 咱們若是用python也能夠實現相
同的效果. 因此普通字符沒什什麼好說的. 重點在元字符上.
元字符: 元字符纔是正則表達式的靈魂. 元字符中的內容太多了了, 在這裏里咱們只介紹一些
經常使用的.
1. 字符組
字符組很簡單用[]括起來. 在[]中出現的內容會被匹配. 例例如:[abc] 匹配a或b或c
若是字符組中的內容過多還可使⽤用- , 例例如: [a-z] 匹配a到z之間的全部字母 [0-9]
匹配全部阿拉伯數字
思考: [a-zA-Z0-9]匹配的是什麼?
2. 簡單元字符
基本的元字符. 這個東⻄西⽹網上一搜一大堆. 可是常⽤用的就那麼幾個:正則表達式
. 匹配除換行符"\n"之外的任意字符,若指定 flag DOTALL 則匹配任意字符,包括換行 \w 匹配 數字 字母 或者 下劃線 \s 匹配任意的 空白符 \d 匹配數字 \n 匹配一個換行符 \t 匹配一個製表符 \b 匹配一個單詞的結尾 ^ 匹配字符串的開始,若指定flag MULTILINE 這種也能夠匹配上(r"^a","\nabc\neee",flag=re.
MULTILINE
$ 匹配字符換的 結尾 \W 匹配非(字母或者數字或下劃線) \D 匹配非數字 \S 匹配非空白符 a|b 匹配字符a 或者 字符 b () 匹配括號內的表達式,也表示一個組 [....] 匹配字符串組中的字符 [^...] 匹配除了字符組中字符的全部字符* 匹配 * 號 前面的字符 0次或者 屢次,