爬蟲(十) 正規表示式

2021-09-02 18:47:11 字數 1878 閱讀 3976

正規表示式:

就是事先定義好一些特殊字元,及特定字元的組合,組成乙個「規則字串」,這個規則字串用來表達對字串的乙個過濾邏輯

|字元| 含義 |

match 方法

match 方法用於查詢字串的頭部(也可以指定起始位置),它是一次匹配,只要找到了乙個匹配的結果就返回,而不是查詢所有匹配的結果

貪婪模式:貪婪模式盡可能多的匹配

import re

def run():

head=『hello 1234yytttzz好w』

result=re.match("^he.*(\d+).*w$",head)

print(result.group(1))

ifname== 『main』:

run()

輸出:1
非貪婪模式:貪婪模式盡可能少的匹配

import re

def run():

head=『hello 1234yytttzz好w』

result=re.match("^he.*?(\d+).*w$",head)

print(result.group(1))

ifname== 『main』:

run()

輸出:1234

匹配換行符:

import re

def run():

head=『hello 1234yytttzz好w』

『we23』

result=re.match("^he.*?(\d+).*23$",head,re.s)

print(result.group(1))

ifname== 『main』:

run()

re.search

掃瞄整個字串並返回第乙個成功的匹配(相比match更好)

例如:

import re

def run():

head='hello 1234yytttzz好w'

result=re.search("e.*?(\d+).*",head)

print(result.group(1))

if __name__ == '__main__':

run()

輸出1234

re.findall

搜尋字串,以列表的形式返回全部能匹配的子串

re.sub

替換字串中每乙個匹配的子串後返回替換後的字串

import re

def run():

str="httm/usi1123 yu" \

"123yy"

result=re.sub('\d+','',str) #將數字替換為空

print(result)

if __name__ == '__main__':

run()

re.compile

將乙個字串編譯成正規表示式,以便於復用該匹配模式

re.i:使匹配對大小寫不敏感

re.l:做本地化識別匹配

re.m:多行匹配

re.s:匹配包括換行在內的多有字元

re.u:根據unicode字符集解析字元,這個標誌影響\w,\w , \b,\b

re.x:通過給予你更靈活的格式,方便正規表示式寫的更易理解

爬蟲 正規表示式

正規表示式 regular expression 是一種字串匹配的模式 pattern 它可以檢查乙個字串是否含有某種子串 替換匹配的子串 提取某個字串中匹配的子串。匯入正則模組 importre 字元匹配 rs re.findall abc adc print rs rs re.findall a...

python爬蟲 正規表示式

正規表示式是十分高效而優美的匹配字串工具,一定要好好掌握。利用正規表示式可以輕易地從返回的頁面中提取出我們想要的內容。1 貪婪模式與非貪婪模式 python預設是貪婪模式。貪婪模式,總是嘗試匹配盡可能多的字元 非貪婪模式,總是嘗試盡可能少的字元。一般採用非貪婪模式來提取。2 反斜槓問題 正規表示式裡...

Python爬蟲 正規表示式

一般的正規表示式都可直接到正則生成工具處生成,常見匹配字元 re.match及其常規匹配 re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match 就返回none。re.match pattern,string,flags 0 返回的為乙個物件,其中span代表長...