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 ...