Python之正規表示式相關知識介紹

2021-10-09 11:18:18 字數 3293 閱讀 9612

正規表示式是用來描述目標字串特徵的一串特殊的文字,它定義了一種匹配模式,可以用來匹配與檢索符合該模式的文字。學習正規表示式首先要了解元字元。

元字元

作用string

匹配包含string的字串

re1 | re2

匹配正規表示式re1或者re2

^匹配以指定字串開頭的字串

$匹配以指定字串結尾的字串

.匹配除\n之外任意字串

*匹配0次或者多次前文正規表示式

+匹配1次或者多次前文正規表示式

?匹配0次或者1次前文正規表示式

(…)匹配括號內的正規表示式並另存為子組

[…]匹配包含方括號中字符集任一字元的字串

{}匹配字串長度

\d匹配十進位制數字

\w匹配字母或者數字

\s匹配空格字元\n、\t、\r、\v、\f 等

match():從字串的起始位置開始匹配;若匹配成功,則返回匹配物件,否則返回none。

>>

>

import re

>>

> s=

"python1 python2 python3 python"

>>

>

print

(re.match(

"python"

,s))

; span=(0

,6), match=

'python'

>

>>

> s1=

"p python1 python2 python3 python"

>>

>

print

(re.match(

"python"

,s1)

)none

search():與match()函式類似,不同的是search()函式不要求從字串起始位置開始匹配。

>>

>

import re

>>

> s1=

"p python1 python2 python3 python"

>>

>

print

(re.search(

"python"

,s1)

); span=(2

,8), match=

'python'

>

findall():用於查詢字串中所有符合正規表示式的字串,返回乙個列表。

>>

>

import re

>>

> s=

"python1 python2 python3 python"

>>

>

print

(re.findall(

"python"

,s))

['python'

,'python'

,'python'

,'python'

]

split():用於按某個字元將目標字串分解成若干個部分,並將這些部分以列表的形式返回。

>>

>

import re

>>

> s =

"python1 python2 python3 are all python"

>>

>

print

(re.split(

" ",s))[

'python1'

,'python2'

,'python3'

,'are'

,'all'

,'python'

]

sub():用於將目標字串中的某些字元替換成指定字串。

>>

>

import re

>>

> s =

"python1 python2 python3 are all python"

>>

>

print

(re.sub(

"python"

,"python"

,s))

python1 python2 python3 are all python

group()和groups():當匹配沒有子組要求(子組要求即正規表示式中包含(…)元字元,系統會匹配括號內的正規表示式並另存為子組)時,group()會返回整個匹配結果,而groups()會返回乙個空元組。

>>

>

import re

>>

> s =

"python1 python2 python3 are all python"

>>

> a = re.search(

"python"

,s)>>

> a.group(

)'python'

>>

> a.groups()(

)>>

> b = re.search(

"([a-z]*)([0-9]*)"

,s)>>

> b.group(

)'python1'

>>

> b.group(2)

'1'>>

> b.groups()(

'python'

,'1'

)

compile():編譯函式,可以縮短正規表示式的匹配時間,因為未經預編譯的字串在匹配過程中需要直譯器來編譯,當匹配次數巨大時,該函式起非常大的作用。

>>

>

import re

>>

> s =

"python1 python2 python3 are all python"

>>

> pattern = re.

compile

(r"([a-z]*)([0-9]*)"

)>>

> b = pattern.search(s)

>>

> b.group(

)'python1'

python 正規表示式相關

注意 python3.x 的print要有括號,python 2.x的不需要 放上學習時寫的例子 import rem re.match r w w p.hello world print m.string m.string print m.re m.re print m.pos m.pos pri...

正規表示式 相關

限定符 說明 指定零個或更多個匹配 例如 w 或 abc 等效於。指定乙個或多個匹配 例如 w 或 abc 等效於。指定零個或乙個匹配 例如 w?或 abc 等效於。指定恰好 n 個匹配 例如 pizza 指定至少 n 個匹配 例如 abc 指定至少n 個但不多於m 個匹配。指定盡可能少地使用重複的...

正規表示式相關

我們知道匹配字串通常用正規表示式,因為幾乎每種語言都有自己的正規表示式引擎,所以效率會比你自己寫演算法要高效的多。下面來看下一些常用的正規表示式運算子。注意 這裡主要是個人總結,所以都會以一些自己用到的東西為主,如果要看具體的api,請在網上查詢 基礎知識儲備 稍微注意下一些細節的地方,比如 和 的...