正規表示式與re模組

2022-08-23 09:00:13 字數 2509 閱讀 2402

一,正規表示式(

)正規表示式本身與python沒什麼關係,就是匹配字串內容的一種規則,只和字串相關。

定義:正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特殊字元、及這些特殊字元的組合,組合乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。

1,字元組,[字元組],在同一位置可能出現的各種字元組成乙個字元組,在在正規表示式中用表示。

2,元字元:. , 匹配除換行符以外的任意字元

\w,匹配字元或數字或下劃線,\w,匹配非字母或下劃線或數字

\s,匹配任意空白字元,\s,匹配非空白字元

\d,匹配數字,         \d,匹配非數字

\n,匹配乙個換行符,\t,匹配乙個製表符,\b,匹配乙個單詞的結尾

^,匹配字串的開始,$,匹配字串的結尾,a|b,匹配字元a或字元b

(),匹配括號內表示式,也表達乙個組

[...],匹配字元組中的字元,[^...],匹配除了字元組中字元的所有字元

3,量詞

*,+,?,,,,預設情況下,採用貪婪匹配。盡可能匹配長的字串。

在量詞後面加?,就是非貪婪匹配,盡可能匹配短的字串。

轉義符,python中,在字串前加r,例r「\d」

.*?的用法:.*?x,就是取前面任意長度的字元,直到乙個x出現

二,re模組

re模組下的常用方法

importre#

ret=re.findall("s","she is girs") #返回所有滿足匹配條件的結果,放在列表裡

#print(ret)

#ret=re.search("s","zhe is girs").group() #函式會在字串內查詢,只找到第乙個匹配,就返回乙個包含資訊的物件,該物件可以

#print(ret) #通過呼叫group()方法得到匹配的字串,如果沒有,則返回none,呼叫group會報錯

#ret=re.match("a","zhe is girs") #和search一樣,但在字串開始處匹配,匹配不到,就沒有,報錯

#print(ret.group())

#ret=re.split("[ab]","abdf") #先按"a"分割得到""和"bdf",再對""和"bdf"分別按"b"分割,結果['', '', 'df']

#print(ret) #如果不加中括號,則按"ab"分割,結果['', 'df']

#ret=re.subn("\d","r","we1rer23g4") #將數字替換成"r",返回元組(替換的結果,替換了多少次(可設定))

#print(ret)

#see=re.compile("\d") #將正規表示式編譯成為乙個正規表示式物件,規則要匹配的3個數字

#ret=see.search("asd34r345rr")

#print(ret.group()) #345

#ret=see.sub("\d","r","we1rer23g4",1) #將數字替換成"r",引數1表示只替換乙個

#print(ret)

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

#print(ret) #

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

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

#print([i.group()for i in ret])

#for i in ret:

#print(i.group())

優先順序

#

findall的優先順序

#ret=re.findall("www.(biadu|oldboy).com","www.oldboy.com")

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

ret=re.findall("www.(?:biadu|oldboy).com","www.oldboy.com")

#print(ret) #['www.oldboy.com']

#split的優先順序

#ret=re.split("\d","eva4your3yuan2she")

#print(ret) #['eva', 'your', 'yuan', 'she']

#ret=re.split("(\d)","eva4your3yuan2she")

#print(ret) #['eva', '4', 'your', '3', 'yuan', '2', 'she']

##在匹配部分加上()之後所切出來結果是不同的

##沒有()的沒有保留所匹配的項,但有()的可以保留匹配的項

re模組與正規表示式

正規表示式,又稱正規表示式 正規表示法 正規表示式 規則表示式 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 是電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列匹配某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索 替...

re模組與正規表示式

re模組與正規表示式的關係 正規表示式是一門獨立的技術,所有的程式語言都可以使用,但是如果想在python中使用,就必須依賴於re模組。正則就是用來篩選特定內容的表示式,在python中 一般情況下 reg都是與正則有關 如果想匹配具體的內容,可以直接寫完整的內容,不需要寫正則。字元組 乙個字串裡面...

re 正規表示式模組

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