Python正規表示式

2022-09-11 07:54:15 字數 2072 閱讀 8908

正規表示式是非正常重要的知識點,他在許許多多的地方都有應用,既是重點,也是難點。

使用正規表示式需要呼叫re模組

re模組常用的方法:

1、re.serach()

re.search 函式會在字串內查詢模式匹配,只到找到第乙個匹配然後返回,如果字串沒有匹配,則返回none。

2、re.match()

re.match 嘗試從字串的開始匹配乙個模式,也等於說是匹配第乙個單詞

3、re.findall

re.findall 在目標查詢符合模式的匹配項

4、re.complie()

re.complie 把正規表示式編譯成乙個物件,這樣在re.findall中就可以直接使用了,而不用使用複雜的規則

5、re.split()

re.split 負責把字元分割

6、re.sub()

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

>>> help(re.sub)

sub(pattern, repl, string, count=0)

正則匹配模式

^匹配字串的開頭

$匹配字串的末尾。

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

[...]

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

[^...]

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

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

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

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

rere

精確匹配n個前面表示式。

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

a| b

匹配a或b

(re)

g匹配括號內的表示式,也表示乙個組

(?imx)

正規表示式包含三種可選標誌:i, m, 或 x 。只影響括號中的區域。

(?-imx)

正規表示式關閉 i, m, 或 x 可選標誌。只影響括號中的區域。

(?: re)

類似 (...), 但是不表示乙個組

(?imx: re)

在括號中使用i, m, 或 x 可選標誌

(?-imx: re)

在括號中不使用i, m, 或 x 可選標誌

(?#...)

注釋.(?= re)

前向肯定界定符。如果所含正規表示式,以 ... 表示,在當前位置成功匹配時成功,否則失敗。但一旦所含表示式已經嘗試,匹配引擎根本沒有提高;模式的剩餘部分還要嘗試界定符的右邊。

(?! re)

前向否定界定符。與肯定界定符相反;當所含表示式不能在字串當前位置匹配時成功

(?> re)

匹配的獨立模式,省去回溯。

\w匹配字母數字

\w匹配非字母數字

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

\s匹配任意非空字元

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

\d匹配任意非數字

\a匹配字串開始

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

\z匹配字串結束

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

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

\b匹配非單詞邊界。'er\b' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

\n, \t, 等.

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

\1...\9

比賽第n個分組的子表示式。

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

太多了懶得手打,直接摘自

貪婪模式:

表示盡可能匹配多的匹配要匹配的內容,可用"?"來取消貪婪匹配,因為?表示匹配前邊字元0次或一次

正則中的轉義:

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