正則表達式re模塊

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個分組的子表達式,若是它經匹配。不然指的是八進制字符碼的表達式。
  • 分組匹配

分組匹配通常使用(),被括起來的表達式將做爲一組,上面所說的只是針對單個字符串,若是須要匹配多個字符串,則用到了分組匹配。先匹配成功所有正則,再匹配成功的局部內容提取出來

相關文章
相關標籤/搜索