Python re模組的常用方法

2021-09-26 02:42:37 字數 2738 閱讀 7963

#findall

# 功能:匹配字串中所有符合條件的

# 返回值:列表,會將所有匹配到的項加入到列表中返回

import re

phone_num =

'17344332233'

# 待匹配的字串

regex = r'^1[3-9]\d$'

# 匹配手機號使用的正則

ret = re.findall(regex,num)

print

(ret)

# findall和分組的關係

ret = re.findall(

'\d(\d)'

,'a1,b22,c345'

)print

(ret)

# [2,4]

ret = re.findall(

'\d(?:\d)'

,'a1,b22,c345'

)print

(ret)

# ['22', '34']

# 功能:匹配從左到右所有符合的,只返回乙個值

# 返回值: 返回的是乙個re自定義型別

num =

'17344332233'

regex = r'^1[3-9]\d$'

ret = re.search(regex,num)

print

(ret)

if ret:

print

('是合法的手機號碼 %s'

% num)

else

:print

('不是合法的手機號碼'

)#serach取分組中的內容:根據序號取,根據組名取

ret = re.search(

'(?p\d)(?p\d)'

,'a1,b28,c345'

)print

(ret.group(0)

)print

(ret.group(1)

)print

(ret.group(2)

)print

(ret.group(

'num1'))

print

(ret.group(

'num2'))

# 分組的引用 ?p=num1表示引用了num1分組,匹配到的內容必須和num1分組中的內容一模一樣

ret = re.search(

'(?p\d)(?p=num1)'

,'a14,b22,c3357'

)print

(ret.group(

))

# 功能:從頭開始匹配,如果開始部分匹配到後則匹配成功,否則匹配失敗

# 返回值: re自定義型別

num =

'17344332233'

regex = r'1[3-9]\d$'

ret = re.match(regex, num)

if ret:

print

(ret)

print

('是合法的手機號碼 %s'

% num)

else

:print

('不是合法的手機號碼'

)# 相當於search方法在正則前加上^

# split 根據正規表示式切割

ret = re.split(r'\d+'

,r'alex123mhy345aa33'

)print

(ret)

# sub 根據正規表示式,將匹配到的字串替換成對應的(正規表示式,要替換的內容,待匹配的字串,要替換的個數)

ret = re.sub(r'\d+'

,'4'

,r'alex123mhy345aa33',1

)print

(ret)

# 結果: alex4mhy4aa4

# 替換方法2:返回的是乙個元組,第乙個元素是替換結果,第二個是替換次數

ret = re.subn(r'\d+'

,'4'

,r'alex123mhy345aa33'

)print

(ret)

# 結果: ('alex4mhy4aa4', 3)

# compile 預編譯 預先來編譯一下我們寫好的正則

rule = re.

compile

(r'\d+'

)ret = rule.findall(

'alex123eva456'

)print

(ret)

ret = rule.findall(

'手機號碼13737373377\n身份證號 110107197712072277'

)print

(ret)

# 結果:['123', '456'] ['13737373377', '110107197712072277']

# finditer將匹配到的內容,返回成乙個迭代器,迴圈取出來的是乙個re自定義型別,通過group方法取值,可以節省記憶體空間

ret = re.finditer(

'\d'

,'alex1916936916598sb7985073495898632847'

)print

(ret)

for i in ret:

print

(i.group(

))

python re模組常用方法

萬用字元 含義示例 匹配結果 reg1 reg2 匹配表示式reg1或者表示式reg2 foo bar bar.匹配除 n以外的任意字元 ab.b abdb 匹配字串起始部分 匹配字串終止部分 匹配0次或多次前面出現的正規表示式 匹配一次或多次前面出現的正規表示式 匹配0次或1次前面出現的正規表示式...

python re函式的常用方法

剛學習python的正規表示式我還是有點懵逼的,不過沒關係,慢慢來,看到乙個知識點就吃乙個。re.match arg0,arg1,arg2 span arg0 表示式 arg1 原始字串 arg2 flag即搜尋的標誌符號 其中span 方法是獲取到資料在原字串的位置 re.search arg0,...

python re模組的學習

re模組是用來處理正規表示式的,正規表示式幾乎在每一門語言中都有,用處可謂很大,主要用與搜尋 匹配和替代,向郵箱 手機號碼的匹配,搜尋對應的檔名並進行替換等,下邊稍微羅列一下python常用的re模組中的相關函式,基本符號的使用這裡就不說了 re.match從字串的開頭查詢匹配的字元 re.sear...