正規表示式及Re庫

2021-08-27 09:01:29 字數 2616 閱讀 9676

unit7 re庫入門

操作符說明例項.

表示任何單個字元

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

[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次

abc表示abbc

擴充套件前乙個字元m至n次(含n)

abc表示abc、abbc

^匹配字串開頭

^abc表示abc且在乙個字串的開頭

$匹配字串結尾

abc$表示abc且在乙個字串的結尾

()分組標記,內部只能使用 | 操作符

(abc)表示abc,(abc|def)表示abc、def

\d數字,等價於[0‐9]

\w單詞字元,等價於[a‐za‐z0‐9_]

經典正規表示式例項1+$

由26個字母組成的字串2+$

由26個字母和數字組成的字串

^‐?\d+$

整數形式的字串

3 * [ 1‐9 ][ 0‐9] * $

正整數形式的字串

[1‐9]\d

[\u4e00‐\u9fa5]

匹配中文字元

\d‐\d|\d‐\d

國內**號碼,010‐68913536

##### re庫的基本使用

當正規表示式包含轉義字元時,使用raw string

例如: r』[1‐9]\d』、r』\d‐\d|\d‐\d』

re庫主要功能函式

函式說明

re.search()

在乙個字串中搜尋匹配正規表示式的第乙個位置,返回match物件

re.match()

從乙個字串的開始位置起匹配正規表示式,返回match物件

re.findall()

搜尋字串,以列表型別返回全部能匹配的子串

re.split()

將乙個字串按照正規表示式匹配結果進行分割,返回列表型別

re.finditer()

搜尋字串,返回乙個匹配結果的迭代型別,每個迭代元素是match物件

re.sub()

在乙個字串中替換所有匹配正規表示式的子串,返回替換後的字串

re.search(pattern, string, flags=0)

常用標記

說明re.l re.ignorecase

忽略正規表示式的大小寫,[a‐z]能夠匹配小寫字元

re.m re.multilin

正規表示式中的^操作符能夠將給定字串的每行當作匹配開始

re.s re.dotall

正規表示式中的.操作符能夠匹配所有字元,預設匹配除換行外的所有字元

re.sub(pattern, repl, string, count=0, flags=0)

###### re庫的兩種用法

函式式用法:一次性操作

rst = re.search(r』[1‐9]\d』, 『bit 100081』)

物件導向用法:編譯後的多次操作

pat = re.compile(r』[1‐9]\d』)

rst = pat.search(『bit 100081』)

##### re庫的match物件

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

方法說明

.group(0)

獲得匹配後的字串

.start()

匹配字串在原始字串的開始位置

.end()

匹配字串在原始字串的結束位置

.span()

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

.string

待匹配的文字

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

.pos

正規表示式搜尋文字的開始位置

.endpos

正規表示式搜尋文字的結束位置

##### re庫的貪婪匹配和最小匹配

>>

> match = re.search(r'py.*n'

,'pyanbn***n'

)>>

> match.group(

0)

同時匹配長短不同的多項?

re庫預設採用貪婪匹配,即輸出匹配最長的子串

最小匹配操作符

操作符說明

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

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

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

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

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

a‐za‐z ↩︎

a‐za‐z0‐9 ↩︎

0‐9 ↩︎

正規表示式 re庫

1.正規表示式的概念 a.為什麼要用正則?用字串匹配也是可以的 startswith 方法用於檢查字串是否是以指定子字串開頭,如果是則返回 true,否則返回 false。如果引數 beg 和 end 指定值,則在指定範圍內檢查。endswith 方法用於判斷字串是否以指定字尾結尾,如果以指定字尾結...

正規表示式 RE

最近一段時間在研究nginx的rewirte重寫機制,因此對re需要有一定的了解,看了想關的文章,因此自己來寫一篇類似總結性的的文章。基本來說,正規表示式是一種用來描述一定數量文字的模式。regex regular express。本文用 regex 來表示一段具體的正規表示式。一段文字就是最基本的...

re正規表示式

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.有兩位小數的正實數 0 9 0 9...