re正規表示式

2021-10-12 09:06:14 字數 2223 閱讀 7325

原子表:

[xyz]abc,其中x,y,z是平行關係,即xabc,yabc,zabc都可以是匹配結果

[^]表示除了中括號內的元素以外都能匹配

任意匹配元字元:.

邊界限制元字元:^,$

限定符:*,?,+,,,

模式選擇符:|,a|b時a和b都可以作為匹配模式

模式單元符:將一些原子組合成大原子使用

使用「re.符號」的方式作為引數加入到函式中

貪婪模式:盡可能多的匹配,". "

懶惰模式:盡可能少的匹配,且為就近匹配,".?"

常見函式:

1.re.match()函式:

從起始位置開始匹配,如果一開始就匹配不了,直接返回none

re.match(pattern,string,flag)

pattern:表示式

string:源字元

flag:標誌位,放模式修正符

2.re.search函式:在全文中匹配,如果全文都匹配不了,再返回none

re.search(pattern,string,flag)

pattern:表示式

string:源字元

flag:標誌位,放模式修正符

3.re.compile()函式:全域性匹配:將滿足匹配的所有結果都提取出來

方法:使 用 re.compile() 對 正 則 表 達 式 進 行 預 編 譯 。

編 譯 後 , 使 用 findall() 根 據 正 則 表 達 式 從 源 字 符 串 中 將 匹 配 的 結 果 全 部 找 出 。

我 們 可 以 通 過 以 下 實 例 更 好 地 理 解 :

import re

string =

"hellomypythonhispythonourpythonend"

pattern = re.

compile

(".python."

)# 預 編 譯

result = pattern.findall(string)

# 找 出 符 合 模 式 的 所 有 結 果

print

(result)

4.re.sub()函式:替換字串,返回替換後的字串

re.sub(pattern,rep, string ,max )

其中,第乙個引數為對應的正規表示式,第二個引數為要替換成的字串,第三個引數

為源字串,第四個引數為可選項,代表最多替換的次數,如果忽略不寫,則會將符合模式

的結果全部替換。

使用re.sub()這個函式,會根據正規表示式pattern,從源字串string查詢出符合模式

的結果,並替換為字元申rep,最多可替換max次。

例項:

1.匹配**:

首先,"://"是固定的,可以寫出來,然後我們要以.com或者.cn結尾,所以正規表示式

的最後應該是[

.coml.cn]

,在":/"與[

.coml.cn]之間,不能現空格,所以我們可以寫為[

^\s]*,

在":/"之前,必須要有內容,所以此時至少要有一次重複,故而我們用"+"而不用"*"

,這些內容可以是任意的字母的組合,包括大小寫,所以可以寫為[a-za-z]

,組合起來,

正規表示式就是:

"[a-za-z]+://[^\s]*[.com|.cn]"

正規表示式 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...

Re正規表示式

import re 匯入re模組 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式表達 r d 分組 使用小括號分組 r d d 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式表達 r d 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式...