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())