第15章 正規表示式 1

2021-06-01 03:16:13 字數 1440 閱讀 6817

15.1 引言/動機

正規表示式(re)為高階文字模式匹配,以及搜尋-替代等功能提供了基礎。正規表示式(re)是一些由字元和特殊符號組成的字串,它們描述了這些字元和字元的某種重複方式,因此能按某種模式匹配乙個有相似特徵的字串的集合,因此能按某模式匹配一系列有相似特徵的字串。

python通過標準庫的re模組支援正規表示式。

15.2 正規表示式使用的特殊符號和字元

15.2.1 用管道符號(|)匹配多個正規表示式模式

管道符號(|)表示乙個或操作。

15.2.2 匹配任意乙個單個的字元(.)

點字元或句點(.)符號匹配除換行符外的任意乙個單個字元。

15.2.3 從字串的開頭或結尾或單詞邊界開始匹配(^ / $ / \b / \b)

還有些符號和特殊字元是用來從字串的開頭或結尾開始搜尋正規表示式模式的。如果想從字串的開頭開始匹配乙個模式,你必須用脫字符號『^』或特殊字元\a。類似,美元符號($)或\z是用來(零寬度)匹配字串的結尾的。

正因為這幾個字元和搜尋的位置有關,所以需要和搜尋模式一起使用。

特別說明,如果你想匹配^或者$,就必須用反斜槓進行轉義。

\b匹配的模式是乙個單詞邊界,與之相應的模式一定在乙個單詞的開頭,不論這個單詞的前面是有字元,還是沒有字元。同樣地,\b只匹配出現在乙個單詞中間的模式。

15.2.4 建立字串()

儘管句點可用來匹配任意字元,但有時候你需要匹配某個特殊的字元。正因為如此,方括號()被發明出來。使用方括號的正規表示式會匹配方括號裡的任何乙個字元。

15.2.5 指定範圍(-)和否定(^)

方括號除匹配單個字元外,還可以支援所指定的字元範圍。方括號裡一對符號中間的連字元(-)用來表示乙個字元的範圍。

如果在左方括號後第乙個字元是上箭頭符號(^),就表示不匹配指定字符集裡的任意字元。

15.2.6 使用閉包操作符(*,+,?,{})實現多次出現/重複匹配

星號或稱星號操作符匹配它左邊那個正規表示式出現零次或零次以上的情況。

加號(+)操作符匹配它左邊那個正規表示式模式至少出現一次的情況。

問號操作符(?)匹配它左邊那個正規表示式模式出現零次或一次的情況。

還有花括號操作符({}),花括號裡可以是單個的值,也可以是由逗號分開的一對值。如果是乙個值,如,則表示匹配n次出現;如果是一對值,即,則表示匹配m次到n次出現。

問號(?)有兩種含義:1.單獨使用時表示匹配出現零次或一次的情況。2.緊跟在表示重複的元字元後面時,表示要求搜尋引擎匹配的字串越短越好。

15.2.7 特殊字元表示、字符集

\d表示十進位制數字

\w表示整個字元數字的字符集

\s表示空白字元

這些特殊字元的大寫形式表示不匹配

15.2.8 用圓括號(())組建組

一對圓括號(())和正規表示式一起使用時可以實現以下任意乙個(或兩個)功能:

對正規表示式進行分組

匹配子組

第15章 正規表示式 2

15.3 正規表示式和python語言 15.3.1 re模組 核心函式和方法 在模式匹配之前,正規表示式必須先被編譯成regex物件。由於正規表示式在執行過程中被多次用於比較,所以強烈建議對它做預編譯,而且,既然正規表示式的編譯是必須的,那使用預編譯來提公升執行效能無疑是明智之舉。re.compi...

15 正規表示式

正規表示式,就是從一段字串中提取需要的字串 需要引入的模組 re,常用的函式 re.findall 引數1,引數2,引數3 引數1,表示用什麼規則進行提取 引數2,表示從 提取。返回值是乙個列表 引數3,re.i 表示不區分大小寫,re.s 匹配多行中符合條件的值 1 萬用字元,表示匹配某個字元後面...

正規表示式 1 初識正規表示式

簡單地說,正規表示式就是一套處理字串的規則和方法,以行為單位對字串進行處理,通過特殊的符號的輔助,我們可以快速的過濾,替換某些特定的字串。運維工作中,會有大量訪問日誌,錯誤日誌,大資料。如何能夠快速的過濾出我們需要的內容,這就需要正規表示式。awk,sed,grep egrep 三劍客要想能工作的更...