正規表示式總結 re (python演示)

2021-08-03 07:37:01 字數 2353 閱讀 9583

正規表示式的基本規則

普通字元組

普通字元組 [abc] 匹配乙個字元 a或者b或者c

排除型字元組 [^]

[^abc] 匹配乙個字元是除a b c 之外的所有字元

[^0-9] 匹配乙個除了0到9字元之外的所有字元

字元組簡記法

\d 包含所有數字字元 相當於 [0-9]

\w 包含所有單詞字元 相當於 [0-9a-za-z_] 注意還會匹配 _ 下劃線

\s 包含所有空白字元 相當於 有製表符\t 回車符 \r 換行符 \n等各種"空白字元"

\d \w \s 分別是 \d \w \s 的排除字元組

[\s\s] [\d\d] [\w\w] 都能表示匹配所有字元

\b 單詞邊界 \b[a-za-z]\b 匹配所有的單詞

\b 非單詞邊界 匹配單詞之間的字元

元字元轉義

使用原生字串不需要考慮轉義 r"hello world" python

^ 定位到字串的起始位置

$ 定位到字串的結束位置 這兩個特殊字元能保證整個string都可以由pattern匹配時才算成功。

使用re.search(r"^abc$", "abc") != none #=>true re.search(r"^abc$", "abcd") != none #=> false

匹配成功時,整個字串都是abc

量詞 之前的元素必須出現n次

之前的元素最少出現m次,最多出現n次

之前的元素最少出現m次,出現次數無上限

之前的元素最少出現0 次,出現次數n次

常用量詞

點號. 特殊的元字元, 能匹配任意單個字元, 換行符 \n 除外.

(加s 編譯標記能夠匹配所有單個字元,包括換行符)

各種量詞的轉義

\ 轉義

\ \ \

則一匹配符 | 從多個模式中選擇其一操作

at|home 匹配 at、home

r2d2|c3p4 匹配 r2d2、c2p4

re模組: 核心函式和方法

compile(pattern, flags=0)

使用任何可選的標記來編譯正規表示式的模式,然後返回乙個正規表示式物件。

(在模式匹配之前,正規表示式模式必須編譯成正規表示式物件。由於正規表示式在執行過程中將進行多次比較操作,因此強烈建議使用預編譯。使用 compile() 函式進行預編譯是提公升效能的明智之舉)

match(pattern, string, flags=0)

嘗試使用帶有可選標記的正規表示式的模式來匹配字串。如果匹配返回匹配物件,否則返回 none

(match 從 string 頭開始匹配)

search(pattern, string, flags=0)

使用可選標記搜尋字串第一次出現的正規表示式模式,如果匹配成功,就返回匹配物件,否則返回 none

findall(pattern, string, flags=0)

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

finditer(pattern, string, flags=0)

與findall()函式相同, 但返回的不是乙個列表,而是乙個迭代器,對於每一次匹配物件都返回乙個匹配物件

split(pattern, string, max=0)

根據正規表示式的模式分隔符, split函式將字串分割為列表,然後返回成功匹配的列表,分割最多操作 max次

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

使用repl 替換所有正規表示式的模式在字串中出現的位置,除非定義count,否則就將替換所有出現的位置。

常用匹配物件方法

group(num=0) 返回整個匹配物件,或者編號為num的特定子組

groups(default=none) 返回乙個包含所有匹配子組的元組(如果沒有成功匹配,則返回乙個空元組)

groupdict(default=none) 返回乙個包含所有匹配子組的命名子組字典,所有的子組名稱作為字典的鍵(如果沒有成功匹配,則返回乙個空字典)

常用的模組屬性

re.i : 不區分大小寫

re.l : 根據本地所使用的語言環境通過\w、\w、\b、\b、\s、\s實現匹配

re.m : 多行匹配,^和$ 分別匹配目標字串的起始和結尾,而不是嚴格的整個字串本身。

re.s : 「.」(點號)能夠匹配所有字元,包括換行符

re.x : 通過反斜線轉義,否則所有空格加上#(以及在該行中所有後續文字都被忽略,除非在乙個字串類中或者允許注釋並且提高可讀性。

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式總結

正規表示式用於操作字串的規則,這些規則由一些符號所組成。使用正規表示式可以進行更複雜的操作,而且這種複雜的操作要比方法短的多。功能 1,匹配。使用的是string類中的matches方法。2,切割。使用的string類split方法。3,替換。4,查詢。1,將正則規則通過pattern類中的stat...

正規表示式總結

常用正規表示式總結 w w w 驗證 號碼 d d d 正確格式為 x x xx x xx x 和 xx 驗證身份證號 15位或18位數字 d d 驗證一年的12個月 0?1 9 1 0 2 正確格式為 01 09 和 1 12 驗證乙個月的31天 0?1 9 1 2 0 9 30 31 正確格式為...