import re
regex = "\w?\d.*"
target = "a123#"
# 從頭開始匹配,如果開始蔓延匹配上就沒有匹配到
ret = re.match(regex,target)
# 找到所有數字進行返回
ret = re.findall("\d"
,"#se233er11ere"
) # 233 11
# 找到所有字母進行返回
ret = re.findall("[a-za-z]"
,"#se233erere"
) # se erere
# 從這個字串開始進行查詢,找到第乙個匹配的進行返回
ret = re.search("\d"
,"#se233er11ere"
) # 233
# sub
(pattern,"
替換字元",
"被替換字元
",count=
替換次數,如果不寫,預設是所有)
s = re.sub("\d"
,"-"
,"nicky1987hash0612"
,count=1)
(s)if ret:
(ret)
二 正規表示式深入
2.1 compile方法
"""
re.compile:
用於將字串形式的正規表示式編譯為
pattern
物件第二個引數是
flags
:代表匹配模式
1 re.i
或者re.ignorecase:
忽略大小寫
2 re.m
或者re.multiline
:多行模式,改變
^ $的行為
3 re.s(dotall):
點任意匹配模式,改變
.的行為
"""pattern=re.compile("^\d")#
字串非
abc開頭,大小寫敏感
p1=re.compile("[^abc]"
,re.ignorecase)
# 字串非
abc開頭,大小寫不敏感
p2=re.compile("[^abc]"
)p3=re.compile("^\d"
,re.m)
p4=re.compile("^\d"
)
2.2 pattern物件
pattern物件是乙個編譯好的正規表示式,通過pattern提供的一系列方法可以對文字進行匹配查詢
2.2.1 查詢可以成功匹配的子串 search
search(string[, pos[, endpos]]) |re.search(pattern, string[, flags]):
#match=pattern.search(target,35,len查詢從字串的
pos下標開始到
endpos
下標結束的時候去匹配字串
# 注意只要匹配成功一次
後面的不在匹配
pattern=re.compile("\d")
target= "123abcabc darling i love you 1314 forever##"#re.search("\d",target)
(
target))if
match:(
match.group())2.2.2 按照能夠匹配的子串將string,分割後返回列表。maxsplit用於指定最大分割次數,不指定就全部分割
pattern=re.compile("\d"
)target= "abc123abcdarling i love you 1314 forever##"
sublist=pattern.split(target,1)
(sublist)
結果:['abc', 'abcdarling i love you 1314 forever##']
2.2.3 搜尋字串,以列表形式返回全部能匹配的子串。
# findall
是查出所有匹配的字串,而不是像
search
一樣,只是查詢出第乙個匹配的
pattern=re.compile("\d"
)target= "abc123abcdarling i love you 1314 forever##"
sublist=pattern.findall(target)
(sublist) # ['123', '1314']
2.2.4 搜尋string,返回乙個順序訪問每乙個匹配結果(match物件)的迭代器。
pattern=re.compile("\d"
)target= "abc123abcdarling i love you 1314 forever##"
subit=pattern.finditer(target)
forsinsubit:
(s.group())
2.2.5 匹配時用指定的字元替換,count用於指定最多替換次數,不指定時全部替換。
# count
用於指定最多替換次數,不指定時全部替換。
pattern=re.compile("[\d]"
)target= "abc123abcdarling i love you 1314 forever##"
ret=pattern.sub("_"
,target,count=3)
(ret) # abc___abc darlingi love you ____ forever##
(re.sub("\d"
,"_"
,target))
# abc_abc darling ilove you _ forever##
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 表示替換所有的匹...