re模組使用案例

2021-10-25 12:13:49 字數 2810 閱讀 9794

寫在前面的話:

re模組當中有很多函式,但是以下三種:

re.sub, re.findall, re.match 這三個命令是爬蟲當中經常使用到的

爬蟲當中經常使用到re.sub,re.findall,re.match 進行資料清洗,提取,請務必掌握好這3個命令。

接下來就是一些小案例,訓練並掌握下對re.sub,re.finadll,re.match的運用以及對應輸出的結果有一定的認知。

findall:提取 ——>核心在於,要提取什麼(定義個正規表示式,在**進行)

sub:替換 ——>核心在於,要替換什麼物件,被替換成什麼,在**進行

match:匹配——>核心在於,要匹配什麼,在**匹配

with

open

('index.html'

,'r'

,encoding=

'utf-8'

)as f:

html=f.read(

)print

(html)

html輸出的結果如下:

"en"

>

"utf-8"

>

title<

/title>

<

/head>

="email"

>

email:[email protected]

<

/div>

="tel"

>

手機號:

400-

660-

0108

<

/div>

<

/div>

<

/footer>

<

/body>

<

/html>

# 定義乙個提取email的正規表示式

#先導入re 模組

import re

pattern_1=

'(.*?)

'#匹配div標籤裡面的class="email"

ret_1=re.findall(pattern_1,html)

# 用正規表示式,在html中去提取

print

(ret_1)

# 但提取的結果為乙個空列表,原因在於,.匹配除了換行符意外的所有字元

## 因此先過濾掉\n,過濾\n  使用re.sub()

html_s=re.sub(

'\n',''

,html)

print

(html_s)

"en"

>

"utf-8"

>

title<

/title>

<

/head>

="email"

> email:[email protected] <

/div>

="tel"

> 手機號:

400-

660-

0108

<

/div>

<

/div>

<

/footer>

<

/body>

<

/html>

## 過濾掉\n後,再進行提取操作即findall

ret_2=re.findall(pattern_1,html_s)

print

(ret_2)

[

' email:[email protected] '

]

## 如上顯示的結果前尾都有空格的列表,通過取列表的索引0,在通過strip()函式能夠去掉收尾的空白

print

(ret_2[0]

.strip())

# 如下顯示即為提取到的郵箱位址,就是我們想要提取的資料

email:[email protected]

###  定義乙個匹配密碼的正規表示式

###注意前面加乙個^是為了防止被轉義

password_pattern=r'^[a-za-z0-9_]$'

# 該密碼以字母、數字或者下劃線為開頭,長度為6-16位

pass1=

'1234567'

pass2=

'k123456'

pass3=

'k123'

print

(re.match(password_pattern,pass1)

)print

(re.match(password_pattern,pass2)

)print

(re.match(password_pattern,pass3)

)

; span=(0

,7), match=

'1234567'

>

; span=(0

,7), match=

'k123456'

>

none

心得體會:

re.sub, re.findall, re.match 這三個命令

資料清洗,提取,爬蟲當中經常使用到

務必掌握好這3個命令

re模組使用

import re strdata python is the best language in the world match只能匹配以 開頭的子符串,第乙個引數是正則,第二個引數是需要匹配的字串 res re.match p strdata,re.i re.i引數表示忽略大小寫 res re.m...

RE模組使用

i mport reli re.match d 12821j128j312893j129 match方法,先使用正規表示式,然後傳入待查字串 print li 結果物件 sre.sre match object span 0,5 match 12821 ifli print li.group 獲得資...

re 模組使用

re模組是python獨有的匹配字串的模組,該模組中提供的很多功能是基於正規表示式實現的,而正規表示式是對字串進行模糊匹配,提取自己需要的字串部分,他對所有的語言都通用。正規表示式元字元 元字元 匹配內容 匹配除換行符以外的任意字元 w匹配字母或數字或下劃線 s匹配任意的空白字元 d匹配數字 n匹配...