天天看點

正規表達式常用操作符

正規表達式常用操作符

常用

^

比對字元串開頭

^abc

表示

abc

且在一個字元串的開頭

$

比對字元串結尾

abc$

abc

且在一個字元串的結尾

( )

分組标記,内部隻能使用

|

操作符

(abc)

abc

(abc|def)

abc、def

\d

數字,等價于

[0‐9]

\w

單詞字元,等價于

[A‐Za‐z0‐9_]

正規表達式文法由字元和操作符構成

.

表示任何單個字元

[ ]

字元集,對單個字元給出取值範圍

[abc]

a、b、c

[a‐z]

表示 a 到 z 單個字元

[^ ]

非字元集,對單個字元給出排除範圍

[^abc]

表示 非a或b或c 的單個字元

*

前一個字元0次或無限次擴充

abc*

ab、abc、abcc、abccc

+

前一個字元1次或無限次擴充

abc+

abc、abcc、abccc

?

前一個字元0次或1次擴充

abc?

ab、abc

|

左右表達式任意一個

abc|def

abc、def

{m}

擴充前一個字元m次

ab{2}c

abbc

{m,n}

擴充前一個字元m至n次

ab{1,2}c

abc、abbc

典型事例

正規表達式 對應字元串
^[A‐Za‐z]+$ 由26個字母組成的字元串
^[A‐Za‐z0‐9]+$ 由26個字母和數字組成的字元串
^‐?\d+$ 整數形式的字元串
^[0‐9][1‐9][0‐9]$ 正整數形式的字元串
[1‐9]\d{5} 中國境内郵政編碼,6位
[\u4e00‐\u9fa5] 比對中文字元
\d{3}‐\d{8} \d{4}‐\d{7}

函數

re.search()

在一個字元串中搜尋比對正規表達式的第一個位置,傳回match對象

re.match()

從一個字元串的開始位置起比對正規表達式,傳回match對象

re.findall()

搜尋字元串,以清單類型傳回全部能比對的子串

re.split()

将一個字元串按照正規表達式比對結果進行分割,傳回清單類型

re.finditer()

搜尋字元串,傳回一個比對結果的疊代類型,每個疊代元素是match對象

re.sub()

在一個字元串中替換所有比對正規表達式的子串,傳回替換後的字元串

regex.search()

regex.match()

regex.findall()

regex.split()

regex.finditer()

regex.sub()

Match

對象是一次比對的結果,包含比對的很多資訊

.string

待比對的文本

.re

比對時使用的patter對象(正規表達式)

.pos

正規表達式搜尋文本的開始位置

.endpos

正規表達式搜尋文本的結束位置

.group(0)

獲得比對後的字元串

.start()

比對字元串在原始字元串的開始位置

.end()

比對字元串在原始字元串的結束位置

.span()

傳回

(.start(), .end())

*?

前一個字元0次或無限次擴充,最小比對

+?

前一個字元1次或無限次擴充,最小比對