單字元匹配:
:匹配 中包含的單個字元
\d :匹配數字字元 相當於[0-9]
\d : 除了\d以外所有字元
\s : 匹配所有的空白字元 例如:\t \n 空格等
\s :除了\s以外所有字元
\w :匹配數字、字母、下劃線、中文 相當於[0-9a-za-z_]
\w :除了\w以外所有字元
. : 匹配除換行符以外所有字元
數量修飾:
:匹配n次
:匹配至少n次, 能多匹配就多匹配(預設貪婪)
: 匹配至少n次,最多m次
:匹配任意多次 同*
:匹配至少1次 同+
:可有可無 同?
貪婪模式/非貪婪模式:
貪婪模式:盡可能多的匹配字元
非貪婪模式:盡可能少的匹配字元
常用:.* :匹配除\n以外所有字元
.*? :取消貪婪
.+ : 匹配至少乙個
.+? : 取消貪婪
邊界修飾:
^ : 以***開頭
$ : 以***結尾
分組 ():
視為乙個整體
子模式
1)命名法:
(?p正規表示式) 使用 (?p=goudan)匹配分組
2)直接使用數字:
(正規表示式) 使用 \1 \2 或 $1 $2 匹配分組(分別代表第乙個小括號匹配到的內容和第二個小括號匹配到的內容)
匹配模式:
函式:
import re
re.compile('正規表示式') # 匹配符合正則的內容
# 匹配
re.match() # 從字串的開頭開始匹配,如果匹配成功,返回乙個物件,否則返回none
re.search() # 從字串的任意位置開始匹配,如果匹配成功,直接返回
re.findall() # 匹配所有,返回乙個列表, 列表裡面就是匹配的內容
# 正則替換
re.sub() # 引數1是要替換掉的字元,引數2是要替換成的字元,引數3是需要替換的字符集
re.subn() # 引數同re.sub,返回結果在re.sub()基礎上增加了返回替換的次數
# 獲取資料 其中ret為返回物件
ret.group() # 得到匹配結果(整個正則匹配的內容)
ret.span() # 得到匹配結果的位置
# 獲取分組資料
ret.group(1) # 第乙個子模式匹配到的內容
ret.group(2) # 第二個子模式匹配到的內容
ret.findall() # 如果想要整個正則匹配的內容,需要將整個正則用小括號括起來
示例: 正規表示式 常用正規表示式
一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...
正規表示式 常用正規表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 4 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 或者 1 3...
常用正規表示式
0 9 0 9 0 9 數字或小數點 0 9 0 9 或 d d 數字和小數點 驗證手機號碼 function checkstr str if reg.test str return true 2位小數 function checknumber str if reg.test str return ...