正則跟re模組內容2023年8月16日

2022-09-10 20:33:17 字數 2162 閱讀 4049

re模組

[字元組] #在同乙個位置上可能出現的各種字元組成乙個字元組。

字元:.   匹配除換行符以外的任意字元(乙個字元)

\w 匹配字母或數字或下劃線

\s 匹配任意的空白符

(tab,空格等)

\d 匹配數字

\n   匹配乙個換行符

\t 匹配乙個製表符

\b 匹配乙個單詞的結尾(需要指定結尾的字元)

^ 匹配字串的開始(寫在開頭)

¥ 匹配字串的結尾(寫在結尾)

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

\d 匹配非數字

\s 匹配非空格符

a|b   匹配字元a或b (優先匹配左邊)

() 匹配括號內的表示式,也表示乙個組。(對整體進行量詞約束)

[...] 匹配字元組中的字元

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

量詞:* 重複零次或更多次

+ 重複一次或更多次

? 重複零次或一次

重複n次

重複n次貨更多次

重複n到m次

匹配是貪戀匹配,盡可能多的匹配到,如果後面加上?則會變成非貪婪匹配,最小匹配。

轉義符:

r』\n』 #前面的r表示不需要轉義  

re.findall(『正則』,『字串』)  #查詢出所有的匹配項,並返回成列表

輸出會是 oldbody,因為正則裡的()分組的原因,如要列印所有,需要在條件中修改成:www.(?:baidu|oldbody).com

re.search(『正則』,『字串』)  #查詢,無返回空,有則返回包含匹配資訊的物件(找到第乙個就返回),需要用  返回值.group() 來列印結果。

re.match(『正則』,『字串』)  #必須從頭開始匹配。同樣返回需要用group()來顯示。匹配不上則返回none。

re.split(『正則』,『字串』)  # [ab] 分隔 babcd,先用a分隔,再用b對後面的進行分隔。分隔時,如果前面沒有元素,則用空填補。

如果正則變成分組,將會保留分隔標識,標識自成乙個元素。

re.sub(『\b』,』h』,』abcd1hasd』,1)  #把字串中的數字(\b)替換成h,只替換乙個。預設是全部替換。

re.subn(『\b』,』h』,』abcd1hasd』)  #返回替換的結果跟替換的次數,結果是乙個元組。

obj =re.compile(『\b』) #將正規表示式編譯成乙個正規表示式物件。

ret = obj.search(『abdedf122agcd』) #正規表示式物件呼叫search,引數為待匹配物件。

<(?p\w+)>\w+?p=tag_name)>   

後面的tag_name 為引用分組,表示跟前面的匹配內容一致。

(?p\b)     ?p 給這個分組起名字為id,用group()索引時可以用id來查詢。

.group(『tag_name』)  #返回 h1         

.group()           #返回  

re.search(r」<(\w+)>\w+\1>」,」」)  #\1表示第乙個分組

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

for i in ret:

print(i.group())      #需要group()來看結果。

需要group()出結果的,正則如果分組,將會自動變成多個輸出,用group的引數控制當索引進行輸出。

flag

re.i       #忽略大小寫

re.m       #多行模式,改變^和$的行為

re.s        #點可以匹配任意字元,包括換行符

re.l        #做本地化識別的匹配,表示特殊字符集\w,\w,\b,\b,\s,\s依賴當前環境,不推薦使用。

re.u      #使用 \w \w \s \s \d \d取決於unicode定義的字元屬性,python3中預設使用該flag

re.x         #冗長模式,該模式下pattern字串可以是多行的,忽略空白字元,並可以新增注釋。

|  (或)  #從左往右匹配,匹配上就不繼續匹配了,所以應該把長的放前面。

os模組 2023年8月16

os.getcwd 獲取當前工作目錄,即當前python指令碼工作的路徑。os.chdir 改變當前指令碼的工作目錄。os.makedirs dirname1 dirname2 可生成多層遞迴目錄 os.removedirs dirname1 若目錄為空,則刪除,並遞迴到上一級目錄,若也為空,則刪除...

2023年8月27記錄

1.python cv2 包 import cv2 img cv2.imread imgfile cv2.imshow img win name img cv2.waitkey 0 無限期等待輸入 cv2.imwrite write file name img 2.scikit image 包 im...

9月11日學習內容整理 正規表示式,re模組

一 正規表示式 正則是很大的乙個知識點,不會僅僅是下面這些東西 1 概念 正規表示式就是一種對字串匹配的規則,注意是只對字串,正規表示式和python沒啥關係,2 表示式 1 字符集 用中括號表示,例如 1 9 012345 a z1 9 a z 字符集代表的是乙個字元的匹配規則,不需寫標點符號,可...