匯入模組
import re
相關函式
re.compile() 建立乙個正則物件(例:regex1=re.compile(r』\d\d\d』))
search() 傳入乙個匹配的字串,輸出結果為匹配到的第乙個(例:result=regex1.search(『455或655』),輸出結果為:455)
findall() 傳入乙個匹配的字串,輸出結果為匹配到所有結果,並以列表的形式輸出(例:result=regex1.findall(『455或655』),輸出結果為:[『455』,『655』])
group() 輸出查詢匹配的結果,括號中填0或不輸入任何值,則直接輸出,若輸入從1開始的數字,則只輸出匹配到的對應的組值,建立正則物件是用()分組(例:regex1=re.compile(r』(\d\d\d)-(\d\d\d-\d\d\d\d))
字元分類
\d 0到9的任意數字
\d 除0到9數字以外的任意字元
\w 任意字母,數字,下劃線字元
\w 除字母,數字,下劃線的任意字元
\s 空格,製表符,換行符(可理解為匹配的空白字元)
\s 除空格,製表符,換行符以外的字元
匹配型別
? 實現可選匹配 例:re.compile(r』bat(wo)?man』),匹配batman或batwoman都會輸出
* 實現零次或多次匹配
+ 實現一次或多次匹配
{} 實現指定次數匹配
例項
import re
phonenumber=re.compile(r』\d\d\d-\d\d\d-\d\d\d\d』)#建立乙個正則物件(匹配物件,\d表示數字)
str=『my number is 112-151-5443』
str1=phonenumber.search(str) #向建立的物件傳入想要查詢的字串
print(『phonenumber:』+str1.group()) #返回匹配的字串
phonenumber1=re.compile(r』(\d\d\d)-(\d\d\d-\d\d\d\d)』) #使用括號進行分組
str2=phonenumber1.search(str)
print(str2.group()) #分組查詢編號是從1開始,若不輸入或輸入為0,就顯示全部匹配物件
print(str2.group(0))
print(str2.group(1))#查詢第一組值
print(str2.group(2))#查詢第二組值
print(str2.groups())#查詢所有分組情況並以元組的形式輸出
heroregex1=re.compile(r』bat(man|woman)』)#使用管道(|)匹配多個分組
strx=『batmobile and batman or batwoman』
mo1=heroregex1.search(strx)
print(『mo1:』+mo1.group()) #search()查詢到第乙個時就會終止,所以輸出結果為batman
mo2=heroregex1.findall(strx)#findall()以列表的形式返回所有匹配的物件
print(mo2)
heroregex2=re.compile(r』bat(wo)?man』) #使用?實現可選匹配
m1=『batman』
m2=『batwoman』
print(heroregex2.search(m1).group())
print(heroregex2.search(m2).group())
heroregex3=re.compile(r』bat(wo)man』) #使用匹配零次或多次
m3=『batman』
m4=『batwowowoman』
print(heroregex3.search(m3).group())
print(heroregex3.search(m4).group())
heroregex4=re.compile(r』bat(wo)+man』) #使用+匹配一次或多次
m5=『batwoman』
m6=『batwowowoman』
print(heroregex4.search(m5).group())
print(heroregex4.search(m6).group())
heroregex5=re.compile(r』(ha)』) #使用{}匹配特定次數
m7=『hahahaha』
print(heroregex5.search(m7).group())
heroregex6=re.compile(r』(ha)』) #貪心匹配,匹配到給定的數值最大的字串(預設為貪心)
heroregex7=re.compile(r』(ha)?』)#在後面加個?,表示非貪心匹配,匹配到給定的數值最小的字串
print(heroregex6.search(m7).group())
print(heroregex7.search(m7).group())
簡單學正規表示式
前面幾章,講解過正規表示式。這章,我們配合python的re模組,對正規表示式進行總結 其實正規表示式,如果要學會簡單的運用,只要記住下面幾種型別,基本能會使用 1 萬用字元 表示匹配乙個單獨的字元,除了換行符 ython,就能匹配python,ython 2 字符集 表示匹配括號內任意的字元 0 ...
Python 正規表示式 簡單示例
最近使用python正規表示式處理資料較多,先將python使用正規表示式匹配文字的示例程式整理一下。從檔案中讀取內容,使用正規表示式匹配import re import sys 主函式 重定向輸出位置 output sys.stdout outputfile open test.txt w sys...
python正規表示式簡單使用
python實用re模組來操作正規表示式,常用的方法如下 看下面一段 import re content abacadae matcher re.match ab content 字串開頭是ab,匹配成功 print matcher.span matcher re.match ac content ...