python正規表示式

2022-10-09 22:15:24 字數 1419 閱讀 4896

標籤: python 正規表示式

. 除換行符的任意字元 dotall

\ 轉義字元

[…] 字元集合

\d 數字:[0-9]

\d 非數字[^0-9]

\s 空白字元[空格》\t\r\n\f\n]

\s 非空白字元[^\s]

\w 單詞字元[a-za-z0-9_]

\w 非單詞字元[^\w]

* 匹配前乙個字元0或者多次

+ 匹配前乙個字元1次或者多次

? 匹配前乙個字元0次或者1次

匹配前乙個字元m次

匹配前乙個字元m至n次

數量詞? 變成非貪婪模式

邊界符^ 匹配字串開頭,多行匹配每一行開頭

$ 匹配字串末尾,多行匹配每一行末尾

\a 僅匹配字串開頭

\z 僅匹配字串末尾

\b 匹配\w 和 \w 之間

邏輯 分組

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

先匹配左邊一旦成功則跳過匹配右邊

如果|沒有包含在()中,匹配整個正規表示式

(…) 分組匹配,從左到右,每遇到乙個 ( 編號+1

分組後面可加數量詞

(?p…) 除了分組序號外,指定乙個 name的別名

\ 引用編號為的分組匹配到的字串

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

特殊構造

(?:…) (…)不分組版本,用於使用 | 或者後接數量詞

(?ilmsux) ilmsux的每個字元代表乙個匹配模式,只能用在正

則表示式的開頭,可選多個

(?#...) #號後的內容將作為注釋

(?=…) 之後的字串內容需要匹配表示式才能成功匹配

(?!...) 之後的字串不匹配表示式才能成功

(?<=…) 之前的字串需要匹配表示式才能成功

(?ilmsux 正規表示式使用開關

i re.i 忽略大小寫

l re.l 使用預定字元類 \w \w \b \b \s \s 取決當前區域設定

m re.m 多行模式改變^ 和 $ 的行為

s re.s . 任意匹配模式

u re.u 使用預定字元類 \w \w \b \b \s \s \d \d 取決unicode定義的字元屬性

x re.x 詳細模式,可以多行,忽略空白字元,並且可以加入注釋

正規表示式通常用於在文字中查詢匹配的字串。python

裡數量詞預設是貪婪的(在少數語言裡也可能是預設非貪

婪),總是嘗試匹配盡可能多的字元;非貪婪的則相反,

總是嘗試匹配盡可能少的字元。例如:正規表示式"ab*"如

果用於查詢"abbbc",將找到"abbb"。而如果使用非貪婪

的數量詞"ab*?",將找到"a"。

sub 根據模式串進行編譯和互動的函式

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模組的講解很簡單易懂,內容不多但起碼把人領進門了,...