Python正規表示式模組re

2022-02-28 19:28:29 字數 2577 閱讀 8461

正規表示式是一種通用的字串匹配模式,使用靈活功能強大.

python正規表示式支援的語法可以參見這張表

python的標準模組re提供了對正規表示式的支援,使用r''表示正則字串可以避免轉義字元帶來的麻煩, 比如'\\d'可以寫作r'\d'.

re.match(pattern, string, flags)

引數:判斷string是否符合pattern, 返回match物件包含匹配的部分:

>>> import re

>>> text = 'this is finley, welcome to join us.'

>>> m = re.match(r'\w*is\w*', text)

>>> m.group(0)

'this'

re.search(pattern, string, flags)

引數與re.match()相同, 在字串內進行模式匹配, 找到第乙個匹配後返回match物件.

>>> import re

>>> text = 'this is finley, welcome to join us.'

>>> m = re.search(r'\w*is\w*', text)

>>> m.group(0)

'this'

re.search尋找字串內從任意位置開始的匹配, 而re.match只尋找從字串的頭部開始的匹配.

修改上例的可以發現兩者的區別:

>>>text = 'here is finley, welcome to join us.'

>>> m = re.match(r'\w*is\w*', text)

>>> m is none

true

>>> m = re.search(r'\w*is\w*', text)

>>> m.group(0)

'is'

re.findall(pattern, string)

以列表的形式返回所有匹配的子串:

>>> import re

>>> text = 'this is finley, welcome to join us.'

>>> m = re.findall(r'\w*is\w*', text)

>>> m

['this', 'is']

re.sub(pattern, repl, string, count)

將匹配的子串替換為repl字串,;

count引數指定替換個數, 預設為0表示全部替換.

re.split(pattern, string)

將匹配的字串作為分隔符, 將字串分隔成乙個列表:

>>> import re

>>> text = 'this is finley, welcome to join us.'

>>> m = re.split(r'\s+', text)

>>> m

['this', 'is', 'finley,', 'welcome', 'to', 'join', 'us.']

下文關於match與pattern物件的介紹**自astralwind

re模組中的很多方法使用match物件表示匹配的結果, match物件中儲存了與此次匹配有關的的資訊.

屬性:方法:

以元組形式返回全部分組截獲的字串。

default表示沒有截獲字串的組以這個值替代,預設為none。

獲得乙個或多個分組截獲的字串,指定多個引數時將以元組形式返回.

group1可以使用編號也可以使用別名;編號0代表整個匹配的子串;

不填寫引數時,返回group(0);沒有截獲字串的組返回none;

截獲了多次的組返回最後一次截獲的子串。

返回以有別名的組的別名為鍵、以該組截獲的子串為值的字典,沒有別名的組不包含在內。default含義同上。

返回指定的組截獲的子串在string中的起始索引(子串第乙個字元的索引)。group預設值為0

返回指定的組截獲的子串在string中的結束索引(子串最後乙個字元的索引+1)。group預設值為0

返回(start(group), end(group))。

將匹配到的分組代入template中然後返回

template中可以使用\id或\g、\g引用分組,但不能使用編號0

\id與\g是等價的;但\10將被認為是第10個分組,如果你想表達\1之後是字元'0',只能使用\g<1>0。

pattern物件是乙個編譯好的正規表示式,通過pattern提供的一系列方法可以對文字進行匹配查詢.

pattern不能直接例項化,必須使用re.compile()進行構造.

re模組方法均有pattern例項方法作為對應版本.

groupindex: 以表示式中有別名的組的別名為鍵、以該組對應的編號為值的字典,沒有別名的組不包含在內。

python正規表示式re模組

嗯 看看就好 小白可能會坑人 有錯誤的話麻煩指出來謝謝 2018年3月15日13 54 11 re 模組 函式與方法的區別 如果是乙個函式,用類名去呼叫,如果是乙個方法,用物件去呼叫 1.compile函式 編 print n1 10 n import re pattern re.compile r...

Python 正規表示式 re模組

在python中,需要用到正規表示式時,就需要匯入re模組進行操作,們可以直接呼叫來實現正則匹配 普通字元 匹配自身 abcabc 匹配任意除換行符 n 外的字元 在dotall模式中也能匹配換行符 a.cabc 轉義字元,使後乙個字元改變原來的意思 a.c a c a.c a c 匹配前乙個字元0...

re模組 正規表示式 python

d 匹配數字 w 匹配字母或數字 s 匹配乙個空格 包括tab s 表示至少乙個空格 表示任意字元 包括零個 表示至少乙個字元 表示0個或1個字元 表示n個字元 表示n m個字元 可以匹配任意字元 a b 表示可以匹配a或b 行的開頭 d 表示必須以數字開頭 表示結尾 d 表示必須以數字結尾 r 字...