1. 程式人生 > 其它 >正則表示式常用操作符

正則表示式常用操作符

正則表示式常用操作符

常用

^ 匹配字串開頭

^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() 在一個字串中搜索匹配正則表示式的第一個位置,返回match物件

regex.match() 從一個字串的開始位置起匹配正則表示式,返回match物件

regex.findall() 搜尋字串,以列表型別返回全部能匹配的子串

regex.split() 將一個字串按照正則表示式匹配結果進行分割,返回列表型別

regex.finditer() 搜尋字串,返回一個匹配結果的迭代型別,每個迭代元素是match物件

regex.sub() 在一個字串中替換所有匹配正則表示式的子串,返回替換後的字串

Match物件是一次匹配的結果,包含匹配的很多資訊

.string 待匹配的文字

.re 匹配時使用的patter物件(正則表示式)

.pos 正則表示式搜尋文字的開始位置

.endpos 正則表示式搜尋文字的結束位置

.group(0) 獲得匹配後的字串

.start() 匹配字串在原始字串的開始位置

.end() 匹配字串在原始字串的結束位置

.span() 返回(.start(), .end())

*? 前一個字元0次或無限次擴充套件,最小匹配

+? 前一個字元1次或無限次擴充套件,最小匹配

?? 前一個字元0次或1次擴充套件,最小匹配

{m,n}? 擴充套件前一個字元m至n次(含n),最小匹配

只要長度輸出可能不同的,都可以通過在操作符後增加?變成最小匹配