Python基礎之re模組

2022-08-13 16:27:15 字數 2851 閱讀 3045

為了編寫可維護的**,我們把很多的函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的**就相對較少,很多程式語言都採用這種組織**的方式,在python中,乙個.py檔案就稱為乙個模組

使用模組的好處 大大提高了**的可維護性 其次 編寫**不必從零開始 當乙個模組編寫完畢 就可以被其他地方引用 我們在編寫程式的時候,也就經常使用其他模組 包括python內建的模組和來自第三方的模組; 另外使用模組可以避免函式名和變數名衝突。

re模組是python標準庫(python中已經定義好的)裡面的乙個模組,主要用於模糊查詢,應用方面為web 、爬蟲等; re 模組 就其本質而言,正規表示式(或re)是一種小型的,高度專業的程式語言,(在python中) 它內嵌在python中,並通過re模組實現,正規表示式模式被編譯成一系列的位元組碼,然後由 c編寫的匹配引擎執行。

re模組使用元字元去匹配資料,元字元包括:

.  萬用字元(可以匹配任意型別的資料)

^ 從開頭開始匹配

$ 結尾符 (返回以指定內容結尾的資料)

* 匹配(0,+00)次

+ 匹配(1,+00)次

?匹配(0,1)次

{} 可以代替之前的三種情況 == * ==+ ==?  匹配重複6次

[a

-z]  表示範圍 re.findall('q[a-z]', 'quojqkjhk') re.findall('q[a-z]*', 'quojqkjhk') 匹配多次 re.findall('q[^a-z]*', 'quojqkjhk') 匹配不是以q開頭後面是字母的

資料

[xyz] 字符集 匹配字符集中的任何乙個字元

\  去掉轉義 使元字元失去特殊功能

() 分組 將()之間的內容定義為組,並且將匹配這個字元的表示式暫存在乙個臨時區域

| 表示或運算

反斜槓後邊跟普通字元實現特功能:

\d   匹配十進位制數 它相當於類[0-9] 將每個數字分成單個方式展示 \d+ 可以展示十位數或者百位數

\d     匹配任何非數字字元 它相當於類[^0-9]

\s   匹配任何空白字元 它相當於類[\+\n\r\f\v]

\s   匹配任何非空白字元 它相當於類[^\+\n\r\f\v]

\w     匹配任何字母數字字元 它相當於類[a-za-z0-9_]

\w  匹配任何非字母數字字元 它相當於類[^a-z a-z 0-9_]

\b   匹配乙個特殊字元邊界 比如空格 & #等

r 或者 \\ 去掉特殊意義

分組

re.search("(?p[a-z]+)\(?p\d+)", "alex36wusir34xialv33").gruop('name')

re模組使用的函式:

findall() 把返回的結果放在列表中

search() 函式在字串內查詢模式匹配 只找到第乙個匹配然後返回乙個物件

search.gruop() 通過呼叫group()方法得到匹配的字串 如果字串沒有匹配則返回空

match() 匹配成功就返回乙個物件 不成功就什麼都不返回 與search 不同的是它只在開始位置進行匹配

spilt() 按照指定的字元將帶匹配物件進行分割 被分割的位置用空白代替

sub() 用指定的字元去替換帶替換的物件

re.sub('\d+','a','jadsk56469adsdfsdf35464')

re.sub('\d','a','jadsk56469adsdfsdf35464')

re.sub('\d','a','jadsk56469adsdfsdf35464', 5)

re.subn('\d', 'a', 'jafdsf2313asfdsd5534') 返回替換的結果和替換的次數

compile() re.compile('') 編譯想要匹配的規則 com=compile('\d+') com.findal('asdfds23asdf') 這樣做可以使用多次

finditer() 將返回結果存在迭代器中 使用的時候 next = re.finditer('\d','asfdds231dsfs') next(ret).group()

去優先順序 re.findall('www\.(?:baidu|163)\.com', 'afsdfdsf.163.comsdafsdf')

python模組 之 re模組

功能 實現python對正規表示式對支援與應用,將想要得到對內容按照正規表示式匹配出來 應用場景 爬蟲指令碼 對使用者輸入內容進行合規檢查 如qq格式檢查 等 功能 匹配物件中所有符合正規表示式的內容,並取出來 返回值 列表,所匹配到對項都會返回到列表中 import re content 1362...

python內建模組之re模組

在python要想使用正則必須借助於模組,re就是其中之一 查詢字串中所有匹配到的字元,並返回乙個列表,沒有匹配資料則返回乙個空列表 import re re.findall 正規表示式 帶匹配的文字 根據正則匹配除所有符合條件的資料 res re.findall b eva jason jacks...

python學習之re模組

這幾天玩爬蟲已經使用了很多次的re模組,算是比較熟悉了,這裡梳理一下。首先,關於正規表示式的概念,這裡有最好的教程。對於正規表示式,我們可以先用compile方法編譯為pattern物件,再呼叫相關的方法進行模式匹配,也可以直接進行匹配。對於第一種,示例如下 123 4567 8910import ...