作用:使用單個字串來描述具有某個特殊規則的匹配模式,有搜尋模式【文字搜尋和文字替換】和匹配模式【根據規則進行匹配指定內容】使用場景:用於校驗郵箱,手機號,qq號,密碼格式等。爬蟲中可以快速的從網頁**中獲取我們需要的資料
使用原則:嚴格遵守正規表示式的語法。結合str的函式使用,效率不如str自帶的函式
單字元匹配注意:[ ]:代表只匹配其中的一位字元,不管[ ]有多少個字元,括號裡面是所有需要匹配的字元的集合;- :連線符,表示乙個區間,要保證ascii碼的值都是連續的,其中的內容可以是數字,也可以是字母;\ :表示轉義,使得後面的字母具有特殊含義#----------匹配單個字元與數字---------
'''. 匹配除換行符以外的任意字元
[0123456789] 是字元集合,表示匹配方括號中所包含的任意乙個字元
[good] 匹配good中任意乙個字元
[a-z] 匹配任意小寫字母
[a-z] 匹配任意大寫字母
[0-9] 匹配任意數字,類似[0123456789]
[0-9a-za-z] 匹配任意的數字和字母
[0-9a-za-z_] 匹配任意的數字、字母和下劃線
[^good] 匹配除了good這幾個字母以外的所有字元,中括號裡的^稱為脫字元,表示不匹配集合中的字元
[^0-9] 匹配所有的非數字字元
\d 匹配數字,效果同[0-9]
\d 匹配非數字字元,效果同[^0-9]
\w 匹配數字,字母和下劃線,效果同[0-9a-za-z_]
\w 匹配非數字,字母和下劃線,效果同[^0-9a-za-z_]
\s 匹配任意的空白符(空格,回車,換行,製表,換頁),效果同[ \r\n\t\f]
\s 匹配任意的非空白符,效果同[^ \f\n\r\t]
'''
邊界匹配
注意:^和$在多行模式下,匹配每一行的行首和行尾;\a和\z:在多行模式下,只匹配第一行的行首和行尾#--------------錨字元(邊界字元)-------------
'''^ 行首匹配,和在裡的^不是乙個意思
$ 行尾匹配
\a 匹配字串開始,它和^的區別是,\a只匹配整個字串的開頭,即使在re.m模式下也不會匹配它行的行首
\z 匹配字串結束,它和$的區別是,\z只匹配整個字串的結束,即使在re.m模式下也不會匹配它行的行尾
\b 匹配乙個單詞的邊界,也就是值單詞和空格間的位置
\b 匹配非單詞邊界
'''
數量詞
注意:():代表的是乙個整體;?*+:匹配多個;{}:表示數量匹配,符合條件的字元能夠出現幾次#-------------------匹配多個字元------------------------
'''說明:下方的x、y、z均為假設的普通字元,n、m(非負整數),不是正規表示式的元字元
(xyz) 匹配小括號內的xyz(作為乙個整體去匹配)
x? 匹配0個或者1個x
x* 匹配0個或者任意多個x(.* 表示匹配0個或者任意多個字元(換行符除外))
x+ 匹配至少乙個x
x 匹配確定的n個x(n是乙個非負整數)
x 匹配至少n個x
x 匹配至少n個最多m個x。注意:n <= m
x|y |表示或,匹配的是x或y
'''
匹配分組 正則1|正則2 :或,只要其中任意乙個正規表示式滿足,則直接按照這個條件進行查詢;():整體
子模式 在正規表示式**現\1,\2等識別符號的時候,\1,\2被稱作是子模式,\1表示從左到右第乙個匹配到的()
貪婪和非貪婪 匹配一位和多位的區別;+ * :匹配多次【貪婪匹配】;?:0次或者1次【非貪婪匹配】,可以在+和*後面新增,將貪婪匹配轉換為非貪婪匹配。如果乙個正規表示式的前後都有限定條件的時候,那麼則不能將貪婪匹配轉換為非貪婪匹配
模式修正
#-------------------模式修正------------------------
'''re.m 【more】 多行模式
re.i 【ignorecase】 忽略大小寫
re.s 【single】 單行匹配
'''
compile():將正規表示式的字串編譯成為正規表示式物件
match():匹配,如果匹配不上,則返回none,如果能匹配上,則返回的是能匹配上的子字串
search():搜尋,只要匹配到第乙個符合條件的,則停止搜尋
findall():搜尋,返回的結果為列表,返回的是全部匹配到的內容
finditer():返回的結果為迭代器
spilt(pattern,string,maxsplit,flags):分隔,返回的結果為乙個列表,當傳入3個引數的時候,表示只匹配前三個引數,則flags根本沒有起作用
sub() :替換,返回的結果是替換之後的新的字串
subn():替換,返回乙個元組(新的字串,替換的次數)
import re
Python之正規表示式
正規表示式正規表示式主要用來匹配字串,例如 判斷乙個字串是否是乙個合法的 思想是用描述性的語言給字串乙個規則。re模組中的match函式提供了這種功能,若匹配成功則返回匹配物件,否則返回none。一 語法 d 表示匹配數字 w 表示匹配字母或數字 可以匹配任意字元 s可以匹配乙個空格或者tab 特殊...
Python之正規表示式
正規表示式元字元如下 匹配除換行符以外的所以字元 規定匹配模式必須出現在目標字串的開頭,例如 hell hello hellboy 規定匹配模式必須出現在目標字串的結尾,例如 ar car bar 其前乙個字元必須在目標物件中連續出現零次或多次 其前乙個字元必須在目標物件中連續出現一次或多次 其前乙...
Python之正規表示式
匯入re模組 檢索和替換 re.sub re.sub pattern,repl,string,count 0,flags 0 pattern 正則中的模式字串 repl 替換的字串,也可為乙個函式 string 要被查詢替換的原始字串 count 模式匹配後替換的最大次數,預設 0 表示替換所有的匹...