python 發軔之始 正規表示式總結

2022-08-23 10:06:11 字數 1693 閱讀 5756

能夠按照某種模式匹配一系列具有相似特徵的字串。

比如說:垃圾郵箱攔截、郵件分類、驗證手機號碼等等功能。

*: 作用是代表前面的字元匹配0-n次。

?:作用是代表前面的字元出現0次或1次,即前面的字元可有可無。

+:作用是代表前面的字元匹配1-n次,至少出現一次。

-:作用是指出乙個範圍,如[0-9],[a-z],[a-z]。

$: 在字串中一般放在最後,代表的是$前面的字元必須匹配給出的字串的結尾字元,如果不是的話,返回空。

^:表示字串的起始位置,如果在中則表示非的意思。

以hello world為例: ^he. => hel (如果變成shello...則會匹配失敗) ,.ld$ => rld (如果變成....world!則會匹配失敗).

.:能夠匹配除\n以外的任何乙個字元。

{}:表示匹配n次前面出現的正規表示式,例如:abc表示的就是aaabc,不能多也不能少,固定的;表示最多m次,最少n次,最大化優先。

:表示能匹配中的任意單字元。

\d : 匹配任意十進位制數字。

\w : 匹配任何數字字母字元。

\s :匹配任何空格字元。

如遇到. $ ^ 等特殊字元,我們就得用「\」進行轉義。

利用 () 進行分組, 運用(?\w+) 指定組名

貪婪模式是指在匹配成功的情況下,盡可能多的匹配。

非貪婪模式是指在匹配失敗的情況下,盡可能少的匹配。

預設都是貪婪模式。

以 abacaxcd 為例子:

使用貪婪模式(也就是一般模式) ab.c => abacaxc

使用非貪婪模式 ab.?c => abac

由此例子可以看到 貪婪模式的* 取到了最大 3個, 而非貪婪模式的*取到了最小0個。

re.compile(pattern, flag = 0)

返回正規表示式物件 (將pattern 轉化為 乙個正規表示式)

正規表示式一般用 r 開頭

例如:re.compile(r'hello',re.i)

這個是忽略大小寫的字串匹配,還有其他的比如說:

re.m 用^ 和 $ 來作為開頭和結尾。 re.s "."能匹配所有的字元。

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

從起始位置匹配乙個模式,如果起始位置開始沒有就返回none

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

查詢字串中所有(非重複)出現的正規表示式模式,返回乙個匹配列表。

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

查詢字串中第一次出現的正規表示式模式,匹配成功返回匹配物件,失敗返回none.

groups()

以元組的形式返回正規表示式中的所有資訊。

groups(num = 0)

返回指定組別中的元素。 從1開始計數。

groupdict()

以字典的形式返回組名和對應的資訊。

split(pattern, string, maxsplit=0, flags=0)

以pattern為界限將string中的內容進行分割, 分割元素不儲存。

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

將pattern中的repl 替換成tring ,支援交換順序,將函式放入其中的操作。

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