Python庫-re(正則表示式)
阿新 • • 發佈:2018-11-24
re庫是python的一個標準庫,不需要自己用pip額外下載,直接呼叫即可。
下面介紹以下庫中函式的作用。
1.re.compile(patter, flags=0)
patter是一個正則表示式字串,例如"[0-9]+",該函式返回一個模式物件(patter object),str型別
2.re.escape(str)
str是一個字串,該函式返回一個轉義後的字串,例如:
t = re.escape("www.baidu.com") print(t) # 輸出 www\.baidu\.com
3.match(pattern, string, flags=0 )
該函式匹配字串string的開頭,遇到第一個不符合的字元時結束。若匹配成功,返回一個match物件(下文會介紹),否則返回None
pattern = "[0-9]" string = "1abcd" m = re.match(pattern, string) print(m) # 輸出 <_sre.SRE_Match object; span=(0, 1), match='1'>
pattern = "[0-9]" string = "a1bcd" m = re.match(pattern, string) print(m) # 輸出 None
4.search(pattern,string,flags=0)
在字串string中,匹配第一組符合正則表示式的字串。若匹配成功, 返回一個match物件(下文會介紹),否則返回None
pattern = "[0-9]" string = "a1b2cd" m = re.search(pattern, string) print(m) # 輸出 <_sre.SRE_Match object; span=(1, 2), match='1'>
5.findall(pattern,string ,flags=0)
返回字串string中所有符合正則表示式的字串構成的列表
pattern = "[0-9]" string = "a1b2cd" m = re.findall(pattern, string) print(m) # 輸出 ['1', '2']
6.finditer(pattern,string,flags=0)
返回字串string中所有符合正則表示式的字串構成的iterator
pattern = "[0-9]" string = "a1b2cd" m = re.finditer(pattern, string) for t in m: print(t) # 輸出 <_sre.SRE_Match object; span=(1, 2), match='1'> <_sre.SRE_Match object; span=(3, 4), match='2'>
match物件
1.match.group(index=0)
0 返回整個匹配到的字串
其他數字則返回對應的分組,多個數字返回相應分組構成的元組
2.match.start()
返回match的開始位置
3.match.end()
返回match 的結束位置
4.match.group()
返回一個元祖物件,(match.start(),match.end())