regular expression ,regex,re
正規表示式是用來簡潔表達一組字串的表示式。
優勢:簡潔
例如:『py』 『pyy』 『pyyy』 『pyyyy』 … 『pyyyy…』 ----> py+
『py』開頭,後續存在不多於10個字元,後續字元不能是『p』或『y』 -----> py[^py]
通用字串表達框架
簡潔表達一組字串的表示式
針對字串表達「簡潔」和「特徵」思想的工具
用來判斷某字串的特徵歸屬
應用:
表達文字型別的特徵(病毒、入侵等)
同時查詢或替換一組字串
匹配字串的全部或部分區域
主要應用在字串匹配
正規表示式的使用
編譯:將符合正規表示式語法的字串轉換成正規表示式特徵 p=re.compile(regex) 編譯後與原本的表示式一致
例子:
re庫是python的標準庫(不需要另外安裝),主要用來字串匹配
import re
呼叫
raw string型別(原生字串型別(不包含轉義符的字串),只需要在字串的表式前加乙個r就行)
表示為 r』text』
例如:r』[1-9]\d』
string 型別更繁瑣 \\來表達正規表示式中的\
當正規表示式包含轉義符時,使用raw string來表示正規表示式
re庫常用的功能函式
在乙個字串中搜尋匹配正規表示式的第乙個位置,返回match物件
import re
#中國地區編碼
match = re.search(r'[1-9]\d'
,'bit 100081'
)if match:
print
(match.group(0)
)
2.re.match(pattern,string,flags=0)
從乙個字串的開始位置起匹配正規表示式,返回match物件
引數同re.search()的引數
例:3. re.findall(pattern,string,flags=0)
搜尋字串,以列表型別返回全部能匹配的字串
引數同re.search()的引數
maxsplit:最大分割數,剩餘部分作為最後乙個元素輸出
搜尋字串,返回乙個匹配結果的迭代型別,每個迭代元素是match物件
在乙個字串中替換所有匹配正規表示式的字串,返回替換後的字串。
repl:替換匹配字串的字串
count:匹配的最大替換次數
7. regex = re.compile(pattern,flags=0)
將正規表示式的字串形式編譯成正規表示式物件
regex.search()等六個函式都可以這樣呼叫,去掉正規表示式物件
程式內部認為只有經過compile編譯的正規表示式才算乙個正規表示式,未經過編譯只是正規表示式的一種表達形式。
match物件的屬性:
表示m是從第0個位置開始搜尋,搜尋到第19個位置結束
match物件的方法:
使用:問題引入:
match = re.search(r』py.*n』,『pyanbn***n』)
match.group(0)
同時匹配長短不同的多項,返回哪乙個?
貪婪匹配(re庫預設)
輸出最長匹配的字串
即輸出『pyanbn***n』
最小匹配
輸出最短的字串
match = re.search(r』py.*?n』,『pyanbn***n』)
match.group(0)
『pyan』
對操作符進行擴充套件
通過在符號後加?獲得最小匹配的結果。
正規表示式學習筆記
正規表示式學習日記 1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫...
正規表示式學習筆記
字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
正規表示式學習筆記
1.正規表示式是可用於在乙個檔案或字元裡查詢和替代文字的一種標準。它具有兩種標準 基本的正規表示式 bre 擴充套件的正規表示式 ere ere包括bre功能和另外其它的概念。2.表示或運算 3.匹配任何單個字元 4.匹配任何中包含的單個字元,如 張王李 三,匹配張 三 王三,李三 5.將排除 後跟...