1. 程式人生 > >常用模塊 2018-4-9

常用模塊 2018-4-9

分組 符號 模式 sdfas search 表達式 其他 asdf 所有

re模塊

re模塊:

什麽是正則:正則就是用一些具有特殊含義的符號組合到一起(稱為正則表達式)來描述字符或者字符串的方法。或者說:正則就是用來描述一類事物的規則。

(在Python中)它內嵌在Python中,並通過 re 模塊實現。正則表達式模式被編譯成一系列的字節碼,然後由用 C 編寫的匹配引擎執行

re模塊的通常用法:

技術分享圖片

重復匹配:
  . ? * + {m,n} .* .*?
  1、.:代表除了換行符外的任意一個字符
  print(re.findall(‘a.c‘,‘abc a1c aAc aaaaaca\nc‘,re.DOTALL))

  2、?:代表左邊那一個字符重復0次或1次
  print(re.findall(‘ab?‘,‘a ab abb abbb abbbb abbbb‘))
  3、*:代表左邊那一個字符出現0次或無窮次
  print(re.findall(‘ab*‘,‘a ab abb abbb abbbb abbbb a1bbbbbbb‘))
  4、+ :代表左邊那一個字符出現1次或無窮次
  print(re.findall(‘ab+‘,‘a ab abb abbb abbbb abbbb a1bbbbbbb‘))
  5、{m,n}:代表左邊那一個字符出現m次到n次
  print(re.findall(‘ab?‘,‘a ab abb abbb abbbb abbbb‘))

  6、.*:匹配任意長度,任意的字符=====》貪婪匹配
  print(re.findall(‘a.*c‘,‘ac a123c aaaac a *123)()c asdfasfdsadf‘))
  7、.*?:非貪婪匹配
  print(re.findall(‘a.*?c‘,‘a123c456c‘))
  ():分組
  []:匹配一個指定範圍內的字符(這一個字符來自於括號內定義的)
  []內的^代表取反的意思
  | :或者

  (?:):代表取匹配成功的所有內容,而不僅僅只是括號內的內容
  re 模塊的其他用法
re.search 掃描整個字符串並返回第一個成功的匹配。

  re.match只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回None;而re.search匹配整個字符串,直到找到一個匹配。

常用模塊 2018-4-9