python爬蟲學習筆記五 Re庫的介紹和使用

2021-09-01 12:26:53 字數 2305 閱讀 1153

re庫是python的標準庫,主要用於字串匹配。

呼叫方式:

import re
*raw string 型別(原生字串型別)

re庫採用raw string型別表示正規表示式,表示為:r'text'

例如:r'[1-9]\d'

r'\d-\d|\d-\d'

raw string是不包含轉義符的字串

*string型別,更繁瑣。要加轉義符

例如:[1-9]\\d" 其中第乙個\為轉義符

函式說明

re.search()

在乙個字串中搜尋匹配正規表示式的第乙個位置,返回match物件(找到符合表示式的第乙個字串後終止)

re.match()

從乙個字串的開始位置起匹配正規表示式,返回match物件(從第乙個字元匹配、匹配乙個終止)

re.findall()

搜尋字串,以列表型別返回全部能匹配的子串(匹配到第乙個後第乙個所有的字串不會再次參與匹配)

re.split()

將乙個字串按照正規表示式匹配結果進行分割,返回列表型別

re.finditer()

搜尋字串,返回乙個匹配結果的迭代型別,每個迭代元素是match物件

re.sub()

在乙個字串中替換所有匹配正規表示式的子串,返回替換後的字串

*在乙個字串中搜尋匹配正規表示式的第乙個位置,返回match物件。

·pattern:正規表示式的字串或原生字串表示

·string:待匹配字串

·flags:正規表示式使用時的控制標記

常用標記

說明re.i  re.ignorecase

忽略正規表示式的大小寫,[a-z]能夠匹配小寫字元

re.m re.multiline

正規表示式中的^操作符能夠將給定字串的每行當作匹配開始

re.s re.dotall

正規表示式中的.操作符能夠匹配所有字元,預設匹配除換行外的所有字元

>>> import re

>>> match=re.search(r'[1-9]\d','bit 1000812')

>>> if match:

print(match.group(0))

100081

>>>

*將乙個字串按照正規表示式匹配結果進行分割,返回列表型別

pattern:正規表示式的字串或原生字串表示

string:待匹配字串

maxsplit:最大分割數、剩餘部分作為最後乙個元素輸出

flags:正規表示式使用時的控制標記

>>> import re

>>> re.split(r'[1-9]\d','bit100081 tsss1000844')

['bit', ' tsss', '4']

>>> re.split(r'[1-9]\d','bit100081 tsss1000844',maxsplit=1)

['bit', ' tsss1000844']

>>> re.split(r'[1-9]\d','bit100081 tsss1000844',maxsplit=2)

['bit', ' tsss', '4']

*搜尋字串,返回乙個匹配結果的迭代型別,每個迭代元素是match物件。

·pattern:正規表示式的字串或原生字串表示

·string:待匹配字串

·flags:正規表示式使用時的控制標記

>>> import re

>>> for m in re.finditer(r'[1-9]\d','bti100081 tsu100084'):

if m:

print(m.group(0))

100081

100084

*在乙個字串中替換所有匹配正規表示式的子串,返回替換後的字串。

·pattern:正規表示式的字串或原生字串表示

·repl:替換匹配字串的字串

·string:待匹配字串

count:匹配的最大替換次數

·flags:正規表示式使用時的控制標記

>>> import re

>>> re.sub(r'[1-9]\d',':zipcode','bit100081 tsu100084')

'bit:zipcode tsu:zipcode'

Python爬蟲學習筆記(五)

使用美麗湯爬取三國演義 定位元素和屬性三種方式 beautifulsoup 正則 xpath soup.tagname soup.find soup.find all soup.select import requests from bs4 import beautifulsoup if name ...

Python爬蟲筆記之re查詢

記錄利用re查詢元素的常用方法。a z a z 由字母組成 0 9 由數字組成 d 整數 u4e00 u9fa 中文字元 25 0 5 2 0 4 d 1 d 1 9 d 0 255,由大到小分段 re.search pattern,string,flags 0 返回第乙個查詢結果 match物件 ...

python爬蟲學習(五)

目標 破解有道翻譯介面,抓取翻譯結果 結果展示 請輸入要翻譯的詞語 elephant 翻譯結果 大象 請輸入要翻譯的詞語 喵喵叫 翻譯結果 mews實現步驟 1 瀏覽器f12開啟網路抓包,network all,頁面翻譯單詞後找form表單資料 2 在頁面中多翻譯幾個單詞,觀察form表單資料變化 ...