從零開始的python爬蟲教程 Day03

2022-09-08 20:48:18 字數 2075 閱讀 2785

re庫的部分方法

詳細匹配規則請參考菜鳥教程。

在正規表示式裡面寫入普通字元,則可以直接匹配出來。

字元作用

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

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

\s匹配空白字元

\s匹配非空白字元

\d匹配數字

\d匹配非數字

\a匹配字串開頭

\z匹配字串結尾(包括換行)

\z匹配字串結尾(不包括換行)

\n匹配換行符

\t匹配製表符

^匹配字串開頭

$匹配字串結尾

*匹配0個以上的任意字元

+匹配1個以上的任意字元

字元作用

匹配一組字元,匹配內的任意字元

()匹配括號內的表示式,或乙個組

|a|b匹配a或b

匹配n個前面的表示式

?匹配0-1個前面的表示式定義的片段

匹配m-n個前面的表示式定義的片段

由於正規表示式裡面的很多字元都有其獨特的作用,故此,需要用一種方式來匹配這些有作用的字元。

就是在這些字元前面加上「\」。

這些字元包括:

特殊字元

匹配方法^\^

*\*+\+

.\.?\?

|\|\[{}

\{()

\ ( \ )\\\

修飾符為正規表示式裡面新增的標誌,用於控制匹配模式。

修飾符作用

re.i

匹配對大小寫不敏感

re.m

可以匹配多行

re.s

使.可以匹配換行

re.u

匹配unicode解析字元

match會從字串的頭開始進行匹配,如果開頭不匹配,則返回none。

sentence =

"hello! i'm 12218. ✧٩(ˊωˋ*)و✧"

text = re.match(r'^hello.*?(\d+).*'

, sentence)

print

(text)

print

(text.group())

print

(text.group(0)

)# group()和group(0)作用一樣,都是匹配到的全部字串

print

(text.group(1)

)# group(1)是取匹配到的第乙個字串

search會從字串的任意位置開始進行匹配,如果非發現匹配部分,則返回none。

text = re.search(r'ello.*?(\d+).*'

, sentence)

# search會從字串的任意位置開始進行匹配

print

(text)

print

(text.group())

print

(text.group(0)

)print

(text.group(1)

)

findall是從字串裡面尋找所有符合條件的匹配部分,匹配部分返回乙個列表型別,如果非發現匹配部分,則返回空列表。

text = re.findall(r'\d'

, sentence)

# findall是從字串裡面尋找所有符合條件的匹配部分

print

(text)

print

(type

(text)

)

compile的方法是用於將乙個正規表示式編譯成乙個正規表示式物件,以便重複使用。

content = re.

compile

(r'.*?(\d+).*?'

)# 將乙個正規表示式編譯成乙個正規表示式物件,可以更方便地使用

text = re.findall(content, sentence)

print

(text)

完整版**請移步我的github。

從零開始的python爬蟲教程 Day03

re庫的部分方法 詳細匹配規則請參考菜鳥教程。在正規表示式裡面寫入普通字元,則可以直接匹配出來。字元作用 w匹配字母 數字 下劃線 w匹配非字母 非數字 非下劃線 s匹配空白字元 s匹配非空白字元 d匹配數字 d匹配非數字 a匹配字串開頭 z匹配字串結尾 包括換行 z匹配字串結尾 不包括換行 n匹配...

從零開始的python爬蟲教程 Day05

beautiful soup 是乙個可以從html或xml檔案中提取資料的python庫.它能夠通過你喜歡的轉換器實現慣用的文件導航,查詢,修改文件的方式.beautiful soup會幫你節省數小時甚至數天的工作時間.摘自beautifulsoup中文文件 和lxml庫一樣,beautifulso...

C C 從零開始的Make教程

include int main 為了編譯生成對應的可執行檔案,你可能會使用下面的命令 cc o hello hello.c hello hello,world 但是,如果使用make 前提是你的作業系統已經安裝了gcc和gnu make 會顯得更清爽一些。make hello cc hello.c...