python爬蟲 正規表示式常用函式及匹配規則

2021-09-25 19:31:26 字數 2051 閱讀 5185

模式描述+

匹配1個或多個表示式

*匹配0個或多個表示式

^匹配一行字串開頭

$匹配一行字串結尾

.匹配任意字元

\d匹配任意數字

\s匹配任意空白符號

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

精確匹配n個前面的表示式

方法描述

match()

從字串開頭開始,傳入要匹配的正規表示式,檢測是否有匹配字串

search()

依次掃瞄字串,找到第乙個符合的字串

findall()

搜尋整個字串,返回匹配的使用內容

sub()

去除或修改一些字串,讓匹配更簡單

compile()

將正則字串編譯成表示式物件,方便復用

match() 方法

content = 'hello 123 4567 world_this is a regex demo'

# 第乙個引數為正規表示式,第二個為要匹配的字串

result = re.match('^hello\s(\d+)\s\d\s\w', content)

輸出匹配的內容 ——group()

輸出匹配的範圍——span()

print(result)

print(result.group())

print(result.group(1)) # 子字串匹配

print(result.span())

結果:

hello 123 4567 world_this

123(0, 25)

通用匹配

.* 表示匹配任意字元並無限次匹配

result1 = re.match('^hello.*demo$', content)

print(result1.group())

結果:

hello 123 4567 world_this is a regex demo

貪婪匹配

非貪婪匹配

.*.*?

盡可能匹配多的字元

盡可能匹配少的字元

字串末尾

字串中

修飾符

修飾符描述

re.i

匹配不區分大小寫

re.s

使.匹配包括換行符在內的所有字元

使用

result = re.match(』^hello\s(\d+)\s\d\s\w』, content, re.s)

轉義匹配

在前面加\, 如\.

sub() 方法
import re

content = '5423dfjdjf:lj'

# 第乙個引數傳入匹配值,第二個為替換成的字串,第三個為原字串

result = re.sub('\d+', '', content)

print(result)

結果:

dfjdjf:lj

compile() 方法
import re

content1 = '2016-12-15 12:00'

content2 = '2019-4-23 12:00'

pattern = re.compile('\d:\d')

result1 = re.sub(pattern, '', content1)

result2 = re.sub(pattern, '', content2)

print(result1, result2)

結果:

2016-12-15 2019-4-23

正規表示式 常用正規表示式

一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...

正規表示式 常用正規表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 4 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 或者 1 3...

正規表示式常用

正規表示式的介紹 1 資料型別 基本資料型別 number string boolean null undefined 複雜資料型別 array function object math date regexp正規表示式 string number boolean 2 regular express...