Python爬蟲基礎 re模組的提取 匹配和替換

2022-05-04 07:09:08 字數 1576 閱讀 2850

re是python的乙個第三方庫。

為了能更直觀的看出re的效果,我們先新建乙個html網頁檔案(可直接複製):

index.html

email:[email protected]

手機號:88888888

## ok,然後我們進入主題。

re主要有三個功能:提取、匹配、替換。

1、提取findall:

re.findall(【正規表示式】, 【被提取的字串】)

注意:返回的型別是列表

我們應如何取出上文index.html中的email或者手機號呢:

import re

with open('index.html', 'r', encoding='utf-8') as f:

# 讀取index.html

html = f.read()

# 把html中的換行符,去掉,也就是替換成空字串,因為.不能匹配到換行符

html = re.sub('\n', '', html)

print(html)

# 定義正規表示式,注意括號

pattern_1 = '(.*?)

' # re.findall(【正規表示式】,【被提取的字串】),返回型別是列表

ret_1 = re.findall(pattern_1, html)

# 字串.strip(),可以去除首位的空格和換行符

print(ret_1[0].strip())

2、匹配match:

re.match(【正規表示式】, 【被匹配的字串】)

注意:如果匹配成功,返回物件;

如果匹配不成功,返回none。

我們應如何編寫定義密碼的正規表示式呢:

import re

# 英文本母開頭,可包括應為字母,數字、下劃線,總位數6-16位

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

# 定義三個密碼

pass1 = '1234567'

pass2 = 'k123456'

pass3 = 'k123'

# 列印測試結果,匹配成功返回re.match物件,不成功返回none

print(re.match(password_pattern, pass1))

print(re.match(password_pattern, pass2))

print(re.match(password_pattern, pass3))

輸出結果為:

3、替換sub:

re.sub(【正規表示式】, 【替換成的字串】, 【被匹配的字串】)

覺得沒看過sub的同學,那只能說明你看筆記不認真了,示範**請看上上文~~

為我心愛的女孩~~

python爬蟲之re模組

傳送門python爬蟲之正規表示式 match 從開始的位置進行匹配。如果開始的位置沒有匹配到。就直接失敗了。text hello ret re.match h text print ret.group 在字串中找到第乙個滿足條件的。text hello ret re.search e text p...

Python基礎之re模組

為了編寫可維護的 我們把很多的函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的 就相對較少,很多程式語言都採用這種組織 的方式,在python中,乙個.py檔案就稱為乙個模組 使用模組的好處 大大提高了 的可維護性 其次 編寫 不必從零開始 當乙個模組編寫完畢 就可以被其他地方引用 我們在編寫程...

python模組 re模組

匹配任意字元 匹配指定字元類別 字元開頭 字元結尾 取非字元 重複多次字元 0次或多次 重複多次字元 1次或多次 重複單次字元 左右表示式任意匹配 重複m到n次字元 重複m次字元 d 匹配任何十進位制數,相當於 0 9 d 匹配任何非數字字元,相當於 0 9 s 匹配任何空白字元,相當於 fdss ...