Python正規表示式

2021-09-18 03:26:38 字數 2061 閱讀 8568

import re

re.match(r』***』, 匹配的字串)嘗試從字串的起始位置匹配乙個模式匹配成功re.match方法返回乙個匹配的物件,否則返回none。可以使用group(num)groups()匹配物件函式來獲取匹配表示式,groups()返回的是乙個元組。

.匹配任意1個字元(除了\n) re.s則可以匹配換行

re.i表示大小寫不敏感

[1-9]匹配[ ]中列舉的任意乙個字元

\d匹配數字,即0-9

\d匹配非數字,即不是數字

\s匹配空白,即 空格,tab鍵,換行

\s匹配非空白

\w匹配單詞字元,即a-z、a-z、0-9、下劃線。預設是re.u,即unicode編碼,可以匹配中文,加上re.a即可指定ascii編碼,等價於[a-za-z0-9_]

\w匹配非單詞字元

*匹配前乙個字元出現0次或者無限次,即可有可無

+匹配前乙個字元出現1次或者無限次,即至少有1次

?匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有

匹配前乙個字元出現m次

匹配前乙個字元出現從m到n次,並且m小於n,逗號兩側不能有空格。

匹配前乙個字元出現m到無限次

^匹配字串開頭 [^a]表示的是只要不是a

$匹配字串結尾

丨匹配左右任意乙個表示式

(ab)將括號中字元作為乙個分組

\num引用分組num匹配到的字串 \1 \2**

(?p)分組起別名

(?p=name)引用別名為name分組匹配到的字串.

re.search:掃瞄整個字串並返回第乙個成功的匹配。匹配成功re.search方法返回乙個匹配的物件,否則返回none。可以使用group(num) 或 groups() 匹配物件函式來獲取匹配表示式。

re.findall:在字串中找到正規表示式所匹配的所有子串,並返回乙個列表,如果沒有找到匹配的,則返回空列表。不需要通過group()取值

re.sub:用於替換字串中的匹配項

re.split:根據匹配進行切割字串,並返回乙個列表

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

python裡正則匹配預設是貪婪的(在少數語言裡也可能是預設非貪婪),總是嘗試匹配盡可能多的字元;非貪婪則相反,總是嘗試匹配盡可能少的字元。在"*","?","+",""後面加上?,使貪婪變成非貪婪

python中字串前面加上 r 表示原生字串

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...