re模組 正規表示式

2022-06-08 04:09:08 字數 3984 閱讀 1623

re模組與正規表示式之間的關係

1.正規表示式是一門獨立的技術,任何語言都可以使用

2.python中需要使用re模組才能使用正則

正則是用來篩選字串中特定的內容,  只要是reg...一般情況都和正則有關

字元組 [ ]

乙個字串裡面的表示式都是或的關係,  正則:[0-9a-fa-f],  可以匹配數字,大小寫形式的a~f,用來驗證十六進製制字元,  ^與$符連用 會精準限制匹配的內容,匹配內容應與兩者之間的內容一致

abc|ab 一定要將長的放在前面

^ 直接寫在外面 限制字串的開頭

[^] 除了裡寫的字元 其他都要

正則在匹配的時候預設都是貪婪匹配(盡量匹配多的),通過在量詞後面加上乙個?就可以將貪婪匹配變成非貪婪匹配(惰性匹配)

量詞必須跟在正則符號的後面,量詞只能能夠限制緊挨著它的那乙個正則符號

分組:當多個正則符號需要重複多次的時候或者當做乙個整體進行其他操作,那麼可以分組的形式分組在正則的語法中就是()

import

reres = re.findall('

[a-z]+

','eva egon,jason

') # findall('正規表示式','帶匹配的字串')

print(res) #

['eva', 'egon', 'jason']

# 將符合正規表示式的內容以列表的形式返回

import

reres = re.search('

a','

eva egon jason

') # search不會直接返回匹配的結果,而是返回乙個物件

print(res.group()) #

a 必須呼叫group才能看到匹配結果

# 1.search只會依據正則查一次 只要查到了結果 就不會再往後查詢

2.當查詢的結果不存在的情況下 呼叫group直接報錯

import

reres = re.match('

e','

eva egon jason')

print

(res)

print(res.group()) #e

# 1.match只會匹配字串的開頭部分

2.當字串的開頭不符合匹配規則的情況下 返回的也是none 呼叫group也會報錯

import

reret = re.split('

[ab]

','abcd

') # 先按'a'分割得到''和'bcd',在對''和'bcd'分別按'b'分割

print(ret) # ['', '', 'cd']

import

reret = re.sub('

\d','

h','

1a3b4cd

',2) #

將數字替換成'h',引數2表示只替換2個

#sub('正規表示式','新的內容','待替換的字串',n)

print(ret) #

hahb4cd

import

reret = re.subn('

\d','

h','

1a3b4cd

',2) #

將數字替換成'h',返回元組(替換的結果,替換了多少次)

print(ret) #

('hahb4cd', 2)

import

reobj = re.compile('

\d') #

將正規表示式編譯成為乙個 正規表示式物件,規則要匹配的是3個數字

ret = obj.search('

abc123eeee

') #

正規表示式物件呼叫search,引數為待匹配的字串

res1 = obj.findall('

347982734729349827384')

print(ret.group()) #

結果 : 123

print(res1) #

結果 : ['347', '982', '734', '729', '349', '

import

reret = re.finditer('

\d', '

ds3sy4784a

') #

finditer返回乙個存放匹配結果的迭代器

print(next(ret).group()) #

等價於ret.__next__()) 3

print([i.group() for i in ret]) #檢視剩餘的左右結果 ['4', '7', '8', '4']

忽略分組優先的機制

print(ret1,ret2) #

['oldboy'] ['www.oldboy.com'] ['oldboy']這是因為findall會優先把匹配結果組裡內容返回,如果想要匹配結果,取消許可權即可

import

reret=re.split("

\d+","

eva3egon4yuan")

print(ret) #

結果 : ['eva', 'egon', 'yuan']

ret1=re.split("

(\d+)

","eva3egon4yuan")

print(ret1) #

結果 : ['eva', '3', 'egon', '4', 'yuan']

re 正規表示式模組

import re 預定義字符集 d 數字 0 9 d 非數字 d s 空白字元 空格 t r n f v s 非空白字元 s w 單詞字元 a za z0 9 w 非單詞字元 w 匹配數量 匹配除換行符以外的任何單個字元 匹配前乙個字元0或無限次 盡可能多的匹配 盡可能少的進行匹配前邊的正規表示式...

正規表示式 re模組

re是python中的正規表示式模組,正則也是每個人程式設計之路上必備的基礎技能。這部落格希望即便從來沒接觸過的人看了也會使用正規表示式字元 含義.匹配除了換行符外的任何字元。可以用re.dotall來設定匹配任何字元,包括換行符 丨a丨b 表示正規表示式匹配a或者b 匹配輸入字串開始的位置,如果設...

正規表示式re模組

正規表示式re模組 編譯正規表示式模式,返回乙個物件的模式。可以把那些常用的正規表示式編譯成正規表示式物件,這樣可以提高一點效率。1 compile 格式 re.compile pattern,flags 0 pattern 編譯時用的表示式字串。flags 編譯標誌位,用於修改正規表示式的匹配方式...