Python 常見的正則匹配表達Re 大集合

2021-10-09 17:13:36 字數 2188 閱讀 9954

詳細介紹常見常用的正規表示式,按照正規表示式模式、正規表示式修飾符和正規表示式函式的順序介紹。

1. '.'點號:在普通模式,它匹配除換行符外的任意乙個字元;如果指定了 dotall 標記(re.s),匹配包括換行符以內的任意乙個字元。

2. '^'尖尖號:匹配乙個字串的開始,在 multiline 模式下,也將匹配任意乙個新行的開始。

3. '$'美元符號:匹配乙個字串的結尾或者字串最後面的換行符,在 multiline 模式下,也匹配任意一行的行尾。

4. '*'星號:指定將前面的re重複0次或者任意多次,而且總是試圖盡量多次地匹配。

5. '+'加號:指定將前面的re重複1次或者任意多次,而且總是試圖盡量多次地匹配。

6. '?'問號:指定將前面的re重複0次或者1次,如果有的話,也盡量匹配1次。

7. *?, +?, ?? :從前面的描述可以看到'*','+'和'?'都是貪婪的,可以在後面加個問號,將策略改為非貪婪,只匹配盡量少的re。

8.方括號:用於指定乙個字元的集合。可以單獨列出字元,也可以用'-'連線起止字元以表示乙個範圍。例如,常見的,[a-z]匹配任意乙個小寫字母,[a-za-z0-9]匹配任意乙個字母或數字。

注意:(1)特殊字元在中括號裡將失效。

(2)另外,如果你要匹配']'或'-'本身,你需要加反斜桿'\'轉義,或者是將其置於中括號的最前面,比如]可以匹配']'。

(3)個字元集合可以取反,以匹配任意不在這個字元集合裡的字元,取反操作用乙個'^'放在集合的最前面表示,放在其他地方的'^'將不會起特殊作用。例如,[^5]將匹配任意不是'5'的字元。

9. '\':反斜桿,轉義'*','?'等特殊字元。

10. (...) 圓括號:匹配圓括號裡的re匹配的內容,並指定組的開始和結束位置。注意:組裡面的內容可以被提取。

11. :m和n都是數字,指定將前面的re重複m到n次。注意:如果省略m,將匹配0到n個前面的re;如果省略n,將匹配n到無窮多個前面的re。

也是貪婪的,a如果有5個以上連續a的話,會匹配5個。可以通過加問號'?'改變。例如,a?如果可能的話,將只匹配3個a。

正規表示式可以包含一些可選標誌修飾符來控制匹配的模式。修飾符被指定為乙個可選的標誌。多個標誌可以通過按位 or(|) 它們來指定。

re.i

使匹配對大小寫不敏感

re.l

做本地化識別(locale-aware)匹配

re.m

多行匹配,影響 ^ 和 $

re.s

使 . 匹配包括換行在內的所有字元

re.u

根據unicode字符集解析字元。這個標誌影響 \w, \w, \b, \b.

re.x

該標誌通過給予你更靈活的格式以便你將正規表示式寫得更易於理解。

1. re.compile(pattern[, flags])

compile 函式用於編譯正規表示式,生成乙個正規表示式( pattern )物件,供 match() 和 search() 這兩個函式使用。

2. re.match(pattern, string, flags=0) 

re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。

3. re.search(pattern, string, flags=0) 

re.search 掃瞄整個字串並返回第乙個成功的匹配。注意:re.match只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none;而re.search匹配整個字串,直到找到乙個匹配。

4. re.sub(pattern, repl, string, count=0, flags=0)

pattern : 正則中的模式字串。

repl : 替換的字串,也可為乙個函式。

string : 要被查詢替換的原始字串。

count : 模式匹配後替換的最大次數,預設 0 表示替換所有的匹配。

5. findall(string[, pos[, endpos]])

在字串中找到正規表示式所匹配的所有子串,並返回乙個列表,如果沒有找到匹配的,則返回空列表。注意: match 和 search 是匹配一次 ,而findall 匹配所有。

6. re.split(pattern, string[, maxsplit=0, flags=0])

split 方法按照能夠匹配的子串將字串分割後返回列表。

Python 正規表示式匹配

請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 coding utf 8 ...

正規表示式匹配 python

coding utf 8 題目 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元 不包括空字元!而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ...

正則匹配 Python

1.1 0 1 個字元1.2 放在末尾,兩個對等字元之間 對等字元 所有稱得上是括號的字元 左右對稱 所有非括號字元 自對稱 最小對等字元匹配 比如 匹配下文 最小結果只有順帶地,當有多個匹配結果時,m re.search m.group n 返回第n組括號匹配的字元。只需要一組結果時,用m.gro...