1. 程式人生 > >Python庫-re(正則表示式)

Python庫-re(正則表示式)

re庫是python的一個標準庫,不需要自己用pip額外下載,直接呼叫即可。

下面介紹以下庫中函式的作用。

1.re.compile(patterflags=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())