re模組中匹配字元的使用

2021-10-07 03:01:09 字數 1348 閱讀 6058

^

匹配字串 的開頭

[^…]

不在中的字元:[^abc] 匹配除了a,b,c之外的字元

[…]用來表示一組字元,單獨列出:[amk] 匹配 『a』,『m』或』k』

$匹配字串的末尾

.匹配任意字元,除了換行符,當re.dotall標記被指定時,則可以匹配包括換行符的任意字元

re*匹配0個或多個的表示式

re+匹配1個或多個的表示式

re?匹配0個或1個由前面的正規表示式定義的片段,非貪婪方式

re精確匹配 n 個前面表示式。例如, o 不能匹配 「bob」 中的 「o」,但是能匹配 「food」 中的兩個 o

re匹配 n 個前面表示式。例如, o 不能匹配"bob"中的"o",但能匹配 "foooood"中的所有 o。「o」 等價於 「o+」。「o」 則等價於 「o*」

re匹配 n 到 m 次由前面的正規表示式定義的片段,貪婪方式

a|b匹配a或b

(re)

對正規表示式分組並記住匹配的文字

\w匹配字母數字及下劃線

\w匹配非字母數字及下劃線

\s匹配任意空白字元,等價於 [\t\n\r\f]

\s匹配任意非空字元

\d匹配任意數字,等價於 [0-9]

\d匹配任意非數字

\a匹配字串開始

\z匹配字串結束,如果是存在換行,只匹配到換行前的結束字串

\z匹配字串結束

\g匹配最後匹配完成的位置

\b匹配乙個單詞邊界,也就是指單詞和空格間的位置。例如, 『er\b』 可以匹配"never" 中的 『er』,但不能匹配 「verb」 中的 『er』

\b匹配非單詞邊界。『er\b』 能匹配 「verb」 中的 『er』,但不能匹配 「never」 中的 『er』

\n, \t, 等

匹配乙個換行符。匹配乙個製表符。等

\1…\9

匹配第n個分組的內容

\10匹配第n個分組的內容,如果它經匹配。否則指的是八進位制字元碼的表示式

[pp]ython

匹配 「python」 或 「python」

rub[ye]

匹配 「ruby」 或 「rube」

[aeiou]

匹配中括號內的任意乙個字母

[0-9]

匹配任何數字。類似於 [0123456789]

[a-z]

匹配任何小寫字母

[a-z]

匹配任何大寫字母

[a-za-z0-9]

匹配任何字母及數字

[^aeiou]

除了aeiou字母以外的所有字元

[^0-9]

匹配除了數字外的字元

re模組中的非貪婪匹配

python的re模組中有貪婪匹配和非貪婪匹配之分,當使用 時會匹配零個或多個,使用 時會匹配乙個或多個.當使用?在前邊特殊符號前時會進行非貪婪匹配,匹配零個或者乙個,今天主要討論非貪婪匹配中存在的坑.import re res re.findall a?aaa print res a a a re...

python中re模組的使用

res re.match pattern,string,flags 0 字串的開頭是否能匹配正規表示式。返回 sre.sre match物件,如果 不能匹配返回none。如果匹配的話,res.string可以獲得原始的字串,並不是匹配的字串 re.sub pattern,repl,string,co...

re模組使用

import re strdata python is the best language in the world match只能匹配以 開頭的子符串,第乙個引數是正則,第二個引數是需要匹配的字串 res re.match p strdata,re.i re.i引數表示忽略大小寫 res re.m...