python學習之re模組

2021-06-28 22:08:28 字數 1646 閱讀 5361

這幾天玩爬蟲已經使用了很多次的re模組,算是比較熟悉了,這裡梳理一下。

首先,關於正規表示式的概念,這裡有最好的教程。

對於正規表示式,我們可以先用compile方法編譯為pattern物件,再呼叫相關的方法進行模式匹配,也可以直接進行匹配。

對於第一種,示例如下:

123

4567

8910

import re

pat = re.compile(r'e(.*?)o') #編譯為pattern物件

text = 'hello world'

#要匹配的文字

mat = pat.match(text) #從text開頭進行匹配,開頭不符合就over,返回乙個match物件,通過group()方法獲取對應元組

src = pat.search(text) #在整個text中搜尋,第一次找到就返回,通過group()方法獲取對應元組

spl = pat.split(text) #用pat進行匹配,並以匹配的文字為界分割text,返回列表

fdl = pat.findall(text) #在text中搜尋所有匹配的內容,返回列表

sub = pat.sub(s,text) #用pat進行匹配,然後把匹配內容替換為s,返回替換之後的字串

sbn = pat.subn(s,text) #同上,但返回字串和替換次數構成的元組

fdi = pat.finditer(text) #返回迭代器

對於第二種,相應**為:

123

4567

89

import re

text = 'hello world'

mat = re.match(r'e(.*?)o',text)

src = re.search(r'e(.*?)o',text)

spl = re.split(r'e(.*?)o',text)

fdl = re.findall(r'e(.*?)o',text)

sub = re.sub(r'e(.*?)o',s,text)

sbn = re.subn(r'e(.*?)o',s,text)

fdi = re.finditer(r'e(.*?)o',text)

返回結果和第一種一樣,使用方法也有明顯的規律,就是把正規表示式放在第乙個引數位置。

值得注意的是,在第一種的re.compile()和第二種的方法中,都可以附加乙個額外的引數用來標明匹配模式,放在最後面。

可選值有:

re.i(全拼:ignorecase): 忽略大小寫(括號內是完整寫法,下同)

re.m(全拼:multiline): 多行模式,改變』^』和』$』的行為(參見上圖)

re.s(全拼:dotall): 點任意匹配模式,改變』.』的行為

re.l(全拼:locale): 使預定字元類 \w \w \b \b \s \s 取決於當前區域設定

re.u(全拼:unicode): 使預定字元類 \w \w \b \b \s \s \d \d 取決於unicode定義的字元屬性

re.x(全拼:verbose): 詳細模式。這個模式下正規表示式可以是多行,忽略空白字元,並可以加入注釋。

可以使用類似re.i | re.m形式,使這兩種模式同時生效。

python模組 之 re模組

功能 實現python對正規表示式對支援與應用,將想要得到對內容按照正規表示式匹配出來 應用場景 爬蟲指令碼 對使用者輸入內容進行合規檢查 如qq格式檢查 等 功能 匹配物件中所有符合正規表示式的內容,並取出來 返回值 列表,所匹配到對項都會返回到列表中 import re content 1362...

python內建模組之re模組

在python要想使用正則必須借助於模組,re就是其中之一 查詢字串中所有匹配到的字元,並返回乙個列表,沒有匹配資料則返回乙個空列表 import re re.findall 正規表示式 帶匹配的文字 根據正則匹配除所有符合條件的資料 res re.findall b eva jason jacks...

Python之re模組詳解

re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞 import re text jgood is a handsome boy,he is cool,clever,and so on.m re.match r w s text if m print m.group 0 n...