Python正規表示式的簡單學習

2021-09-11 22:02:56 字數 2571 閱讀 9284

匯入模組

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 ...