正規表示式

2021-09-12 09:51:47 字數 3563 閱讀 5495

#

"""#

author:cairo

#"""##

一、匹配單個字元

#\d:匹配單個數字

#\d:匹配單個非數字

#\w:匹配單個字母或者數字或下劃線

#\w:匹配單個字母或者數字或者下劃線以外的字元

#\s:匹配單個不可見的字元,例如:\w\s\-\s\d匹配a - 3.(匹配的是空格)

#\s:匹配乙個可見的字元

#.:匹配任意乙個字元,例如\w.\d 匹配1~3.

#\.:匹配字元「.」

#二、匹配多個字元

#*:匹配任意數量字元

#三、匹配範圍

#[xyz]:匹配xyz中任意的乙個字元

#[^xyz]:匹配非xyz字元

#[x|y]:匹配其中任意乙個字元

#(***|jjj):匹配其中任意乙個字串

#[a-z]:匹配a-z的範圍

#[^a-z]:匹配a-z以外的範圍

#四、匹配數量

#?:0-1個前方子表示式。例如\w?\d匹配a3和3。

#+:數量大於0個前方子表示式。例如:/s+ 表示至少乙個空格。

#:前方子表示式數量為n次。

#:前方子表示式數量至少為n次。

#:前方子表示式數量至少為n次,最多為m次。

#五、匹配首尾字元

#^:匹配字串起始單個字元,後方緊隨首個字元或表示式。

#$:匹配字串末尾單個字元,前方緊隨末尾字元或表示式。

#\b:匹配單詞邊界,即字串末尾字串。例如:er\b匹配player。

#\b:匹配非單詞邊界,即字串末尾之前的字串。例如:er\b匹配error

#六、特殊匹配

#\:轉義字元

#\f:匹配乙個換頁符

#\n:匹配乙個換行符

#\r:匹配乙個回車符

#\t:匹配乙個製表符

#\v:匹配乙個垂直製表符

#七、零寬度斷言

#零寬度斷言是一種零寬度的匹配,它匹配到的內容不會儲存到匹配結果中去,最終匹配結果只是乙個位置。

#它的作用是給指定位置新增乙個限定條件,用來規定此位置之前或者之後的字元必須滿足限定條件才能使正則中的字表示式匹配成功。

#(?!表示式):向後匹配乙個字元,如果不是表示式對應的字元,則匹配成功。

#(?=表示式):向後匹配乙個字元,如果是表示式對應的字元,則匹配成功。

#(?<=表示式):向前匹配乙個字元,如果是表示式對應的字元,則匹配成功。#(?

#另外,補充一點,如果想獲取到零寬度斷言匹配成功的字元,需要在斷言後方填寫表示單個字元的表示式,例如:(?!,).表示字元不是「,」則獲取。##

#等價字元:

#?等價於匹配長度

#*等價於匹配長度

#+等價於匹配長度

#\d等價於[0-9]

#\d等價於[^0-9]

#\w等價於[a-za-z_0-9]

#\w等價於[^a-za-z_0-9]##

#常用運算子與表示式:

#^:字串開始

#$:字串結尾

#():域段/組(group),能夠將匹配表示式的字元臨時儲存,並通過函式group(args)獲取。

#:包含,預設是乙個字元長度

#[^]:不包含,預設是乙個字元長度

#:匹配長度

#.:任何單個字元

#|:或

#\:轉義

#[a-z]:26個大寫字母

#[a-z]:26個小寫字母

#[0-9]:0至9數字

#[a-za-z0-9]:26個大寫字母、26個小寫字母和0至9數字

#,:分割,例如:[a,h,t,w] 包含字母a或h或t或w;[a,h,t,w] 包含字母a或h或t或w;[0,3,6,8] 包含數字0或3或6或8。

#importre#

def phone(phone_re):

#rephone = '^1[4,3,5,7,8,6]\d'

#if re.match(rephone,phone_re):

#print("正確的號碼!!!")

#else:

#print("號碼不存在!!!")

#phone("1342173104")

#首位字元為1:表示式需要寫入「^1」;

#第2位字元是「3、4、5、7、8」之一:表示式需要寫入「[3,4,5,7,8]」;

#其餘9位是數字:表示式需要寫入「\d」;

#號碼長度為11位:表示式需要寫入「$」(如果不寫入「$」超出11位依然能夠匹配,而不是精確匹配)。

#把上面每一部分連到一起就是完整的正規表示式。

#re.i/re.ignorecase:忽略大小寫。

#re.l/re.locale:讓\w、\w、\b、\b、\s和\s依賴當前的區域語言設定。

#re.m/re.multiline:影響』^』和』$』的行為,指定後,』^』會增加匹配每行的開始(即換行符後的位置);』$』會增加匹配每行的結束(即換行符前的位置)。

#re.s/re.dotall:影響』.』的行為,指定後,可以匹配換行符。

#re.u/re.unicode:讓\w、\w、\b、\b、\d、\d、\s和\s依賴unicode庫。

#re.x/re.verbose:指定後,忽略所有空白字元(方括號內以及被反斜槓轉義的除外);而且,在每行中「#」號後的所有字元也將被忽略(既能夠在正規表示式內部寫注釋)。

#def

id_numbeer(id):

numbeer = '

^44088\d19\d\d[0-1]\d[0-3]\d\w'if

re.match(numbeer,id):

print("

匹配到身份證!!!")

else

:

print("

匹配不到!!!")

id_numbeer(

'44088219951815678d')

####

####

####

##^[1-9]\d*$    //匹配正整數

^-[1-9]\d*$   //匹配負整數

^-?[1-9]\d*$   //匹配整數

^[1-9]\d*|0$  //匹配非負整數(正整數 + 0)

^-[1-9]\d*|0$   //匹配非正整數(負整數 + 0)

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮點數

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配負浮點數

^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮點數

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非負浮點數(正浮點數 + 0)

^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮點數(負浮點數 + 0)

#

posted @

2018-05-19 18:28

caionk 閱讀(

...)

編輯收藏

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 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 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...