學習筆記 03 單元七 Re 正規表示式 庫入門

2021-10-05 11:14:44 字數 3606 閱讀 3879

一、簡介

正規表示式是用來簡潔表達一組字串的表示式。

作用:1)表達文字型別的特徵;2)查詢或替代一組字串;3)匹配字串的全部或部分

二、正規表示式的語法

編譯:將符合正規表示式語法的字串轉換成正規表示式的特徵p=re.compile(regex)

正規表示式的語法由字元和操作符構成

1)常用操作符:略

2)語法例項:

pyn——'pn''pyn''pyyn'…;

^y[a-za-z]+$——由26個字母組成的字串;^-?\d+$——整數型式的字串;

^[0-9]*[1-9][0-9]*$——正整數型式的字串;;[1-9]\d——中國境內的郵編;

[\u4e00-\u9fa5]——匹配中文字元;\d-\d|\d-\d——國內**號碼010-68913536;

ip位址字串形式的正規表示式:\d.\d.\d.\d,精確匹配

(([1‐9]?\d|1\d|2[0‐4]\d|25[0‐5]).)([1‐9]?\d|1\d|2[0‐4]\d|25[0‐5])

三、re庫的基本使用

1、raw string(原始字串,表示為r'text')與string(字串)的比較

例如:r'[1‐9]\d''[1‐9]\\d'r'\d‐\d|\d‐\d''\\d‐\\d|\\d‐\\d'

2、功能函式

1)re.search(pattern,string,flag=0):在字串中搜尋匹配正規表示式的第乙個位置返回match物件

import re

match = re.

search

(r'[1-9]\d'

,'bit 100081'

)if match:

print

(match.

group(0

)) #返回 100081

2)re.match(pattern,string,flag=0):從乙個字串的開始位置起匹配正規表示式,返回match物件

import re

match = re.

match

(r'[1-9]\d'

,'bit 100081'

)if match:

print

(match.

group(0

)) #報錯

3)re.findall(pattern,string,flag=0):搜尋字串,以列表型別返回全部能匹配的字串

import re

ls = re.

findall

(r'[1-9]\d'

,'bit100081 tsu100084')ls

#返回:[

'100081'

,'100084'

]

4)re.split(pattern,string,maxsplit=0,flag=0):將乙個字串按照正規表示式匹配結果進行分割,返回列表型別

import re

ls = re.

split

(r'[1-9]\d'

,'bit100081 tsu100084'

)print

(ls) #返回 [

'bit'

,' lt = re.splittsu',''

]lt = re.

split

(r'[1-9]\d'

,'bit100081 tsu100084'

,maxsplit=1)

print

(lt) #返回 [

'bit'

,' tsu100084'

]

5)re.finditer(pattern,string,flag=0):搜尋字串,返回乙個匹配結果的迭代型別,每個迭代元素是match物件

import re

#match = re.finditer(r'[1-9]\d','bit100081 tsu100084') #迭代物件不能這樣

for m in re.

finditer

(r'[1-9]\d'

,'bit100081 tsu100084'):

if m:

print

(m.group(0

)) #返回 100081

100084

6)re.sub(pattern,repl,count=0,flag=0):在乙個字串中替代所有匹配正規表示式的字串返回替換後的字串

import re

re.sub

(r'[1-9]\d'

,':zipcode'

,'bit100081 tsu100084'

) #迭代物件不能這樣

# 返回'bit:zipcode tsu:zipcode'

3、正規表示式物件

regex = re.compile(pattern,flag=0)(面對物件用法:編譯後的多次操作,上面的函式式用法:一次性操作)

regex.search()

4、match物件

match物件是一次匹配的結果,包含匹配的很多資訊

match物件的屬性:

.string—待匹配的文字;.re—待匹配時使用的patter物件;

.pos—搜尋文字的開始位置;.endpos—搜尋文字的結束位置;

四、貪婪匹配和最小匹配

1)貪婪匹配:

import re

match = re.

search

(r'py.*n'

,'pyanbn***n'

)match.

group(0

)#返回 『pyanbn***n』

2)最小匹配

import re

match = re.

search

(r'py.*?n'

,'pyanbn***n'

)match.

group(0

)#返回 『pyan』

最小匹配操作符:*?+????

re 正則表達筆記

span 跨度 pattern 模式 todo re.match todo 返回開頭匹配的結果,若開頭無匹配項,則返回none print re.match www www.runoob.com print re.match www www.runoob.com span 0,3 print re....

python 正則re學習筆記

正規表示式,又稱規則表示式 正規表示式 regular expression 描述了一種字串匹配的模式 pattern 1.代表原子表 儲存表示式 字元集合。匹配所包含的任意乙個字元 a 匹配乙個字母a abc 匹配字母a b c a z 匹配任意一位小寫字母 aabb 匹配任意一位大小寫字母a b...

正規表示式re筆記

import re 1.re.match 只能從頭開始匹配 例如 ret re.match abc 123abc123abc 匹配abc失敗 ret re.match abc abc123 匹配abc成功 ret.span 返回匹配的索引範圍 0,2 ret.group 返回匹配的字元 abc 2....