1、正則表達式模塊re:正則表達式
1.定義:正則表達式(或re)是一種小型的、高度專業的編程語言。編程
2.正則匹配之字符匹配:編程語言
匹配的對象必須是字符串類型。正則匹配的方式主要有三種:spa
正則匹配方式一:re.findall(‘ ’,字符串)對象
匹配字符串中全部符合規則的字符串,並以列表的方式返回字符串
注意:findall若是使用了分組,則輸出的內容是分組中的內容(也就是( )內的內容)加上?來啓用‘不捕捉模式’,能夠返回所有內容class
正則匹配方式二:re.search(‘ ’,字符串)語言
這個方式只會匹配一個值,匹配到就結束,無論後面有幾個都再也不匹配,若是沒有匹配到會報錯,匹配到的結果須要經過group()取得。Print(re.search( ).group()),結果是非列表對象。字符
正則匹配方式三:re.match(‘ ’,字符串)數字
這個方式從開頭第一個字符開始匹配,若是第一個字符就匹配不上,直接返回的結果爲None,匹配上了也須要group()取得結果。
等同於:re.match()==re.search(‘^...’,」字符串」)
經常使用元字符:
- . 匹配任意字符,除了換行符,當re.DOTALL標記被指定時,則能夠匹配包括換行符的任意字符
- ^ 匹配起始位置
- $ 匹配終止位置
- * 匹配前面的字符0到屢次,能夠沒有
- + 匹配前面的字符1到屢次,最少有一個
- ? 匹配前面的字符0-1次
- \ 轉義符 反斜槓後面跟元字符去除特殊功能, 反斜槓後面跟普通字母實現特殊功能
- {} 匹配次數 如 {3}匹配3次,{1,5} 匹配1到五次
- [] 或的做用 a[bc]d 匹配 abd acd ,除了-,非^,"" 裏面的特殊符號沒有任何意義
其餘特殊意義的字符加字母:
- \w 匹配包括下劃線的任何單詞字符。等價於'[A-Za-z0-9_]'。
- \W 匹配任何非單詞字符。等價於 '[A-Za-z0-9_]'。
- \s 匹配任意空白字符,等價於 [\t\n\r\f].
- \S 匹配任意非空字符
- \d 匹配任意數字,等價於 [0-9].
- \D 匹配任意非數字
- \A 匹配字符串開始
- \Z 匹配字符串結束,若是是存在換行,只匹配到換行前的結束字符串。c
- \z 匹配字符串結束
- \G 匹配最後匹配完成的位置。
- \b 匹配一個單詞邊界,也就是指單詞和空格間的位置。例如, 'er\b' 能夠匹配never 中的 'er',但不能匹配 verb 中的 'er'。
- \B 匹配非單詞邊界。'er\B' 能匹配 verb 中的 'er',但不能匹配 never中的 'er'。
- \n, \t, 等. 匹配一個換行符。匹配一個製表符。等
- \1...\9 匹配第n個分組的子表達式。
- \10 匹配第n個分組的子表達式,若是它經匹配。不然指的是八進制字符碼的表達式。
- 分組匹配
分組匹配通常使用(),被括起來的表達式將做爲一組,上面所說的只是針對單個字符串,若是須要匹配多個字符串,則用到了分組匹配。先匹配成功所有正則,再匹配成功的局部內容提取出來