常用正規表示式

2021-08-28 10:32:17 字數 1448 閱讀 9978

單字元匹配:

:匹配 中包含的單個字元 

\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 ...