Re正規表示式

2022-09-01 05:03:07 字數 3532 閱讀 5997

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

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

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

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

字元組 [ ]

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

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

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

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

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

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

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

import re

res = re.findall('[a-z]+','eva egon,jason') # findall('正規表示式','帶匹配的字串')

print(res) # ['eva', 'egon', 'jason']

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

import re

res = re.search('a','eva egon jason') # search不會直接返回匹配的結果,而是返回乙個物件

print(res.group()) # a 必須呼叫group才能看到匹配結果

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

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

import re

res = re.match('e','eva egon jason')

print(res)

print(res.group()) #e

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

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

import re

ret = re.split('[ab]','abcd') # 先按'a'分割得到''和'bcd',在對''和'bcd'分別按'b'分割

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

import re

ret = re.sub('\d','h','1a3b4cd',2) # 將數字替換成'h',引數2表示只替換2個

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

print(ret) #hahb4cd

import re

ret = re.subn('\d','h','1a3b4cd',2) # 將數字替換成'h',返回元組(替換的結果,替換了多少次)

print(ret) # ('hahb4cd', 2)

import re

obj = 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 re

ret = re.finditer('\d', 'ds3sy4784a') #finditer返回乙個存放匹配結果的迭代器

print(next(ret).group()) # 等價於ret.__next__()) 3

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

ret2 = re.findall('www.(?:baidu|oldboy).com', 'www.oldboy.com') # 忽略分組優先的機制

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

import re

ret=re.split("\d+","eva3egon4yuan")

print(ret) #結果 : ['eva', 'egon', 'yuan']

ret1=re.split("(\d+)","eva3egon4yuan")

print(ret1) #結果 : ['eva', '3', 'egon', '4', 'yuan']

正規表示式 RE

最近一段時間在研究nginx的rewirte重寫機制,因此對re需要有一定的了解,看了想關的文章,因此自己來寫一篇類似總結性的的文章。基本來說,正規表示式是一種用來描述一定數量文字的模式。regex regular express。本文用 regex 來表示一段具體的正規表示式。一段文字就是最基本的...

re正規表示式

1.數字 0 9 2.n位的數字 d 3.至少n位的數字 d 4.m n位的數字 d 5.零和非零開頭的數字 0 1 9 0 9 6.非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7.帶1 2位小數的正數或負數 d d 8.正數 負數 和小數 d d 9.有兩位小數的正實數 0 9 0 9...

Re正規表示式

import re 匯入re模組 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式表達 r d 分組 使用小括號分組 r d d 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式表達 r d 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式...