Python中正規表示式的使用

2021-07-09 14:05:35 字數 2064 閱讀 3623

正規表示式是一種非常強大的工具,是用來對文字(字串)的匹配,搜尋的利器,一門好的語言都不可缺少這一模組,在python中,re模組就整合了所有正規表示式的功能

首先,把re模組中所有的函式和方法在此列舉一番:match,search,findall,split.sub,group,groups,compile

1.match(p,s)

一般是兩個引數,p:正規表示式(也相當於乙個字串);s:要匹配的字串

從頭開始匹配正規表示式,從p的第乙個字元開始匹配,匹配中就輸出匹配到的內容,沒有就返回none

import re

m = re.match('[a-z]=[0-9]','ssaa=0jinleib=1')   //匹配不到

m = re.match('[a-z]=[0-9]','a=0jinleib=1')   //匹配到'a=0'

2.search(p,s)

跟match的唯一區別就是,它不是從頭開始匹配,

import re

m = re.search('[a-z]=[0-9]','ssaa=0jinleib=1')   //匹配到'a=0',但是不會輸出b=1,因為它只返回乙個匹配到結果

3.group,groups

之所以把這兩個函式放在這個位置,是因為你match或者search完之後,想知道自己匹配到的內容是什麼,就要用到group,groups。

看上面的例子,m是返回值,它的型別是乙個物件,直接輸出是看不到結果的,所以就要用到m.group(),或者m.groups()。這樣就會輸出乙個字串

再說說group和groups的區別:只有正規表示式p中有用'()'括起來的內容,並且匹配成功,用groups才會有結果,要不然都是none,而group都可以用,只不過當正規表示式p中有用'()'括起來的內容時,group會有乙個引數,是整數型別,如果是1,就輸出p中第1個用'()'括起來的匹配到的內容,以此類推,類似於陣列,只不過不是從0開始。

4.findall

引數,和match,search一樣,不同的是它返回的是乙個列表list,裡面含有所有匹配到內容,下面兩個例子:

>>>re.findall('car','the car is so carry the barcarid')

['car','car','car']       //匹配到所有的car

import re

m = re.findall('([a-z])=([0-9])','ssaa=0jinleib=1') 

結果:[ ('a','0'), ('b','1') ]      //注意,列表裡面的元素已經變成元組了,而元組裡面的元素分別是p中兩個()括起來的內容,這裡就是用()和不用()的區別

5.split

引數還是一樣,乙個p,乙個s。但是要注意一點的是,千萬不要和字串的內建函式(也叫)split混淆!

這個split的功能是根據正規表示式所能匹配的字串來分割字串:

str = '   1.7  2.3 4    123'

alist = re.split(r'\s+',str)

print alist         //猜猜結果是什麼?沒錯[ '','1.7','2.3','4','123' ]。\s表示空格符,以乙個或者多個空格為分隔符分割字串str。

6.sub(p,rep_s,s)

功能:用替代字串rep_s代替用正規表示式p在目標字串s上匹配到的內容。

>>>re.sub('x','me','is x')

'is me'       //輸出結果

7.compile(p)

一般只是乙個引數,它的功能就是編譯正規表示式p,它返回乙個regex物件

reg = re.compile('d')

reg.match('sd')  //沒有匹配到

reg.match('d')   //匹配到d,

返回結果和上面直接用match函式一樣,是乙個物件,或者none。

好了,有了這些,只要你清楚正規表示式的基本語法,以及在python中一些特殊字元,多加練習,python的正規表示式就能手到擒來啦!!

python中正規表示式使用

1 正規表示式的常用操作符 操作符說明例項 表示任何單個字元 字符集,對單個字元給出取值範圍 abc 表示a b c,a z 表示a到z單個字元 非字符集,對單個字元給出排除範圍 abc 表示非a或b或c的單個字元 前乙個字元0次或無限次擴充套件 abc 表示ab abc abcc abccc等 前...

Python中正規表示式的使用

在日常的開發中,python作為一門十分重要的語言,越來越受人們青睞,在python正規表示式使用也是十分廣泛,本篇部落格就來詳細講一講python中的正規表示式,也算複習一遍。直接上例子,通俗易懂 import re content hello 123 4567 world this is a r...

python中正規表示式

python中正規表示式語法與linux中的相容 檢視正規表示式 python提供re模組,包含所有正規表示式的功能。由於python的字串本身也用 轉義,所以要特別注意 s abc 001 python的字串 對應的正規表示式字串變成 abc 001 建議使用python的r字首,就不用考慮轉義的...