compile 函式用於編譯正規表示式,生成乙個正規表示式( pattern )物件,供 match() 和 search() 這兩個函式使用。python 的re模組提供了re.sub用於替換字串中的匹配項。
split 方法按照能夠匹配的子串將字串分割後返回列表。
re.compile(pattern[, flags])
引數:
pattern : 乙個字串形式的正規表示式
flags : 可選,表示匹配模式,比如忽略大小寫,多行模式等,具體引數為:
re.i 忽略大小寫
re.l 表示特殊字符集 \w, \w, \b, \b, \s, \s 依賴於當前環境
re.m 多行模式
re.s 即為 . 並且包括換行符在內的任意字元(. 不包括換行符)
re.u 表示特殊字符集 \w, \w, \b, \b, \d, \d, \s, \s 依賴於 unicode 字元屬性資料庫
re.x 為了增加可讀性,忽略空格和 # 後面的注釋
import re
astr="a13fhg,.567ghy7dg87!'gty78"
程式:m1=re.compile(r"\d\d") #取乙個兩位數
print(m1.search(astr,2).group()) #從第二個字元開始取乙個兩位數
print(m1.findall(astr,3,12)) #從第3個字元開始,到第12個字元截止,取乙個兩位數
執行結果:
56['56']
程式:m2=re.compile(r"a",re.i) #取出字串中的「a」,不區分大小寫
print(m2.findall(astr))
執行結果:
['a']
re.sub(pattern, repl, string, count=0, flags=0)
引數:
pattern : 正則中的模式字串。
repl : 替換的字串,也可為乙個函式。
string : 要被查詢替換的原始字串。
count : 模式匹配後替換的最大次數,預設 0 表示替換所有的匹配。
import re
astr="a13fhg,.567ghy7dg87!'gty78"
print(re.sub("7","9",astr)) #用"9",替換字串中的"7"
m4=re.compile(r"\d+") #編譯字串中所有數字
print(m4.sub("",astr)) #用空格替換字串中所有數字
print(m4.sub("",astr,2)) #用空格替換字串中數字,替換2次
def f1(m):
return m.group().upper() #upper():將字串中的小寫字母轉為大寫字母。
print(re.sub(r"[a-z]",f1,astr)) #用大寫字母替換所有字串中的小寫字母
執行結果:
a13fhg,.569ghy9dg89!'gty98
afhg,.ghydg!'gty
afhg,.ghy7dg87!'gty78
a13fhg,.567ghy7dg87!'gty78
re.split(pattern, string[, maxsplit=0, flags=0])
引數:
pattern:匹配的正規表示式
string:要匹配的字串
maxsplit:分隔次數,maxsplit=1 分隔一次,預設為 0,不限制次數
flags:標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等
import re
astr="a13fhg,.567ghy7dg87!'gty78"
print(astr.split("13")) #以數字"13"分割字串
print(re.split("\d",astr)) #以兩位數字分割字串
print(re.split("\d+",astr)) #以所有數字分割字串
m3=re.compile(r"\d+") #先預編譯,再分割
print(m3.split(astr))
print(m3.split(astr,3)) #以所有數字分割字串,分割三次
執行結果:
['a', "fhg,.567ghy7dg87!'gty78"]
['a', 'fhg,.', '7ghy7dg', "!'gty", '']
['a', 'fhg,.', 'ghy', 'dg', "!'gty", '']
['a', 'fhg,.', 'ghy', 'dg', "!'gty", '']
['a', 'fhg,.', 'ghy', "dg87!'gty78"]
Python之正規表示式
正規表示式正規表示式主要用來匹配字串,例如 判斷乙個字串是否是乙個合法的 思想是用描述性的語言給字串乙個規則。re模組中的match函式提供了這種功能,若匹配成功則返回匹配物件,否則返回none。一 語法 d 表示匹配數字 w 表示匹配字母或數字 可以匹配任意字元 s可以匹配乙個空格或者tab 特殊...
Python之正規表示式
正規表示式元字元如下 匹配除換行符以外的所以字元 規定匹配模式必須出現在目標字串的開頭,例如 hell hello hellboy 規定匹配模式必須出現在目標字串的結尾,例如 ar car bar 其前乙個字元必須在目標物件中連續出現零次或多次 其前乙個字元必須在目標物件中連續出現一次或多次 其前乙...
Python之正規表示式
匯入re模組 檢索和替換 re.sub re.sub pattern,repl,string,count 0,flags 0 pattern 正則中的模式字串 repl 替換的字串,也可為乙個函式 string 要被查詢替換的原始字串 count 模式匹配後替換的最大次數,預設 0 表示替換所有的匹...