正規表示式可以包含一些可選標誌修飾符來控制匹配的模式。修飾符被指定為乙個可選的標誌。多個標誌可以通過按位 or(|) 它們來指定。如 re.i | re.m 被設定成 i 和 m 標誌:
修飾符描述
re.i
使匹配對大小寫不敏感
re.l
做本地化識別(locale-aware)匹配
re.m
多行匹配,影響 ^ 和 $
re.s
使 . 匹配包括換行在內的所有字元
re.u
根據unicode字符集解析字元。這個標誌影響 \w, \w, \b, \b.
re.x
該標誌通過給予你更靈活的格式以便你將正規表示式寫得更易於理解。
模式字串使用特殊的語法來表示乙個正規表示式:
字母和數字表示他們自身。乙個正規表示式模式中的字母和數字匹配同樣的字串。
多數字母和數字前加乙個反斜槓時會擁有不同的含義。
標點符號只有被轉義時才匹配自身,否則它們表示特殊的含義。
反斜槓本身需要使用反斜槓轉義。
由於正規表示式通常都包含反斜槓,所以你最好使用原始字串來表示它們。模式元素(如 r'\t',等價於 '\\t')匹配相應的特殊字元。
下表列出了正規表示式模式語法中的特殊元素。如果你使用模式的同時提供了可選的標誌引數,某些模式元素的含義會改變。
模式描述
^匹配字串的開頭
$匹配字串的末尾。
.匹配任意字元,除了換行符,當re.dotall標記被指定時,則可以匹配包括換行符的任意字元。
[...]
用來表示一組字元,單獨列出:[amk] 匹配 'a','m'或'k'
[^...]
不在中的字元:[^abc] 匹配除了a,b,c之外的字元。
re*匹配0個或多個的表示式。
re+匹配1個或多個的表示式。
re?匹配0個或1個由前面的正規表示式定義的片段,非貪婪方式
re精確匹配 n 個前面表示式。例如, o 不能匹配 "bob" 中的 "o",但是能匹配 "food" 中的兩個 o。
re匹配 n 個前面表示式。例如, o 不能匹配"bob"中的"o",但能匹配 "foooood"中的所有 o。"o" 等價於 "o+"。"o" 則等價於 "o*"。
re匹配 n 到 m 次由前面的正規表示式定義的片段,貪婪方式
a| b
匹配a或b
(re)
對正規表示式分組並記住匹配的文字
(?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匹配字串結束,如果是存在換行,只匹配到換行前的結束字串。
\z匹配字串結束
\g匹配最後匹配完成的位置。
\b匹配乙個單詞邊界,也就是指單詞和空格間的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\b匹配非單詞邊界。'er\b' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
\n, \t, 等.
匹配乙個換行符。匹配乙個製表符。等
\1...\9
匹配第n個分組的內容。
\10匹配第n個分組的內容,如果它經匹配。否則指的是八進位制字元碼的表示式。
字元匹配
例項描述
python
匹配 "python".
字元類例項
描述[pp]ython
匹配 "python" 或 "python"
rub[ye]
匹配 "ruby" 或 "rube"
[aeiou]
匹配中括號內的任意乙個字母
[0-9]
匹配任何數字。類似於 [0123456789]
[a-z]
匹配任何小寫字母
[a-z]
匹配任何大寫字母
[a-za-z0-9]
匹配任何字母及數字
[^aeiou]
除了aeiou字母以外的所有字元
[^0-9]
匹配除了數字外的字元
特殊字元類
例項描述
.匹配除 "\n" 之外的任何單個字元。要匹配包括 '\n' 在內的任何字元,請使用象 '[.\n]' 的模式。
\d匹配乙個數字字元。等價於 [0-9]。
\d匹配乙個非數字字元。等價於 [^0-9]。
\s匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。
\s匹配任何非空白字元。等價於 [^ \f\n\r\t\v]。
\w匹配包括下劃線的任何單詞字元。等價於'[a-za-z0-9_]'。
\w匹配任何非單詞字元。等價於 '[^a-za-z0-9_]'。
python 正規表示式規則
正規表示式描述.代表任意字元 匹配內部的任一字元或子表示式 對字符集和取非 定義乙個區間 對下一字元取非 通常是普通變特殊,特殊變普通 匹配前面的字元或者子表示式0次或多次 惰性匹配上乙個 匹配前乙個字元或子表示式一次或多次 惰性匹配上乙個 匹配前乙個字元或子表示式0次或1次重複 匹配前乙個字元或子...
python 正規表示式規則
正規表示式的一些匹配規則 用於匹配任意乙個字元,如 a.c 可以匹配 abc aac akc 等 用於匹配以.開頭的字元,如 abc 可以匹配 abcde abcc abcak 等 用於匹配以.結尾的字元,如 abc 可以匹配 abc 123abc 等 匹配前乙個字元零次或多次,如 abc 可以匹配...
正規表示式 規則表示式
今天學習了正規表示式的一些基礎知識,1.概念 首先了解了一下正規表示式的含義 一些便於計算機識別的規則,能夠快速方便地對字元進行操作。而對於計算機而言,也有一寫規則表示式,它是能令計算機讀懂的 所以對我們來說看起來比較費勁 也相當於計算機的常識,一遇到就知道你要幹什麼。2.建立正則物件 var re...