Python_正則表達式

正則表達式

  • Regular Rxpression, 又稱規則表達式
  • 正則表達式 就是事先定義好的一些特定字符(組合),組成一個”規則字符串”,這個”規則字符串”用來描述了一種字符串的匹配模式
  • 作用:可以檢查一個串是否含有某種數據、將匹配的數據替換或者取出(1.判斷數據是否符合要求,2.提取你想要的數據)
  • 特點: 功能強大,使用靈活

re模塊操作

#re模塊使用過程

#導入re模塊
import re
# 使用match方法進行匹配操作
result = re.match(正則表達式, 要匹配的字符串)
# 如果上一步匹配到數據的話,可以使用group方法來提取數據
result.group()
#如果沒有匹配 則result是None
resilt = re.search(正則表達式, 要匹配的字符串)
# 如果上一步匹配到數據的話,可以使用group方法來提取數據
result.group()

匹配單個字符

字符 功能
. 匹配任意一個字符(除了\n)
[] 匹配[ ]中列舉的字符
\d 匹配數字,即0-9
\D 匹配非數字,即不是數字
\s 匹配空白,即空格,tab鍵
\S 匹配非空白
\w 匹配單詞字符,即a-z、A-Z、0-9、_、中文
\W 匹配非單詞字符

匹配多個字符

字符 功能
* 匹配前一個字符出現0次或者無限次,即可有可無\d*等價於\d{0, }
+ 匹配前一個字符出現1次或者無限次,即至少有1次\d+等價於\d{1, }
匹配前一個字符出現1次或者0次,即要麼有1次,要麼沒有\d?等價於\d{0,1}
{m} 匹配前一個字符出現m次
{m,n} 匹配前一個字符出現從m到n次

匹配開頭結尾

字符 功能
^ 匹配字符串開頭
$ 匹配字符串結尾

匹配分組

字符 功能
\ 匹配左右任意一個表達式
(ab) 將括號中字符串作爲一個分組
\num 引用分組num匹配到字符串
(?p\) 分組起別名
(?P=name) 引用別名爲name分組匹配到字符串

re模塊的高級用法

  • search 掃描整個字符串並返回第一個成功的匹配
  • findall 類似search,返回列表
  • sub 將匹配到的數據進行替換
  • split 根據匹配進行切割字符串,並返回一個列表

python貪婪和非貪婪

  • 貪婪:Python裏數量默認是貪婪的(在少數語言裏也可能是默認貪婪),總是嘗試匹配儘可能多的字符
  • 非貪婪:總是嘗試匹配儘可能少的字符
  • 在”*”,”?”,”+”,”{m,n}”等量詞後面加上?,使貪婪變成非貪婪
  • 注意事項:貪婪儘可能多,非貪婪儘可能少;貪婪和非貪婪必須有一個前提就是滿足整體匹配結果

r的作用

  • python中字符串前面加上 r 表示原生字符串 ,結論就是寫正則表達式的時候加上 r 字符,沒毛病!!!
PEGEXP
  • PEGEXP在列值內進行匹配,如果被匹配的文本在列值中出現,PEGEXP將會找到它,相應的行將被返回
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章