正規表示式的基本規則
普通字元組
普通字元組 [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 正確格式為...