Python之re模組的各種函式

2021-09-25 15:15:18 字數 2118 閱讀 7083

1.re.match(pattern, string, flags=0)

是從字串的句首進行匹配,如果句首匹配不到就返回none,group() 即為group(0),表示返回匹配到的整個字串,group()可含有引數, 從1開始,返回乙個對應的字元。groups()以元組的形式返回所有字元。下列情況的返回值為空。

import re

line = "cats are smarter than dogs"

#.* 表示任意匹配除換行符(\n、\r)之外的任何單個或多個字元

matchobj = re.match(r'(.*) are (.*?) .*', line, re.m | re.i)

if matchobj:

print("matchobj.group() : ", matchobj.group())

print("matchobj.group(1) : ", matchobj.group(1))

print("matchobj.groups() : ", matchobj.groups())

結果如下:

matchobj.group() : cats are smarter than dogs

matchobj.group(1) : cats

matchobj.groups() : ('cats', 'smarter')

2.re.search(pattern, string, flags=0)

只返回匹配到的第乙個資料,後面的不在匹配,也用group返回資料,

line = "cats are 13214124smarter than 4324dogs"

matchobj = re.search(r'\d+', line, re.m | re.i)

if matchobj:

print("matchobj.group() : ", matchobj.group())

print("matchobj.groups() : ", matchobj.groups())

結果: matchobj.group() : 13214124

matchobj.groups() : ()

3.re.compile(pattern[, flags])

用來生成乙個正規表示式,供其他re的函式使用。

pattern = re.compile(r'([a-z]+) ([a-z]+)', re.i)   # re.i 表示忽略大小寫

m = pattern.match('hello world wide web')

print(m.span()) #span([group]) 方法返回 (start(group), end(group)),輸出範圍

4.findall(string[, pos[, endpos]])

找到字串中所有符合正規表示式的子串,並返回乙個列表,若無匹配項,則返回空列表

pattern = re.compile(r'\d+')   # 查詢數字

result1 = pattern.findall('runoob 123 google 456')

結果:['123', '456']

5.re.finditer(pattern, string, flags=0)

和findall()一樣會匹配到所有的字串,但最終結果需要for迴圈獲取,

it = re.finditer(r"\d+","12a32bc43jf3") 

for match in it:

print (match.group())

6.re.split(pattern, string[, maxsplit=0, flags=0])

分割後返回列表,

maxsplit:分隔次數,maxsplit=1 分隔一次,預設為 0,不限制次數。

7.re.sub(pattern, repl, string, count=0, flags=0)

其中 repl : 替換的字串

string:原始字串

count : 模式匹配後替換的最大次數,預設 0 表示替換所有的匹配

菜鳥教程

python模組 之 re模組

功能 實現python對正規表示式對支援與應用,將想要得到對內容按照正規表示式匹配出來 應用場景 爬蟲指令碼 對使用者輸入內容進行合規檢查 如qq格式檢查 等 功能 匹配物件中所有符合正規表示式的內容,並取出來 返回值 列表,所匹配到對項都會返回到列表中 import re content 1362...

python內建模組之re模組

在python要想使用正則必須借助於模組,re就是其中之一 查詢字串中所有匹配到的字元,並返回乙個列表,沒有匹配資料則返回乙個空列表 import re re.findall 正規表示式 帶匹配的文字 根據正則匹配除所有符合條件的資料 res re.findall b eva jason jacks...

python學習之re模組

這幾天玩爬蟲已經使用了很多次的re模組,算是比較熟悉了,這裡梳理一下。首先,關於正規表示式的概念,這裡有最好的教程。對於正規表示式,我們可以先用compile方法編譯為pattern物件,再呼叫相關的方法進行模式匹配,也可以直接進行匹配。對於第一種,示例如下 123 4567 8910import ...