1.re.match函數
re.match 嘗試從字元串的起始位置比對一個模式,如果不是起始位置比對成功的話,match()就傳回None。
(1)函數文法:
re.match(pattern, string, flags=0)
函數參數說明:
pattern 比對的正規表達式
string 要比對的字元串
flgs 标志位,用于控制正規表達式的比對方式
我們可以使用group(num) 或 groups() 比對對象函數來擷取比對表達式。
group(num=0) 擷取比對結果的各個分組的字元串,group() 可以一次輸入多個組号,此時傳回一個包含那些組所對應值的元組。
groups() 傳回一個包含所有分組字元串的元組。
注意:如果未比對成功,match()傳回值為None,此時再使用group()、groups() 方法會報錯。
應該先擷取比對對象,然後判斷比對對象是否非空,當非空時在使用group()、groups() 方法擷取比對結果。見執行個體2
(2)執行個體
例1
import re
print(re.match(r\'How\', \'How are you\').span()) # 在起始位置比對
print(re.match(r\'are\', \'How are you\')) # 不在起始位置比對
以上輸出結果為:
(0, 3)
None
例2
import re
content = \'577 zeke\'
result = re.match(r\'[a-z]\d\' , content)
if result:
print result.group()
else:
print \'No match!\'
以上執行結果如下:
No match!
2.pattern.match方法
(1) 函數文法
pattern.match( string, pos=0, endpos=len(string))
函數作用:
這個方法将在字元串string的pos位置開始 嘗試比對pattern(pattern就是通過 re.compile()方法編譯後傳回的對象),如 果pattern比對成功,無論是否達到結束位 置endpos,都會傳回一個比對成功後的 Match對象;
如果比對不成功,或者 pattern未比對結束就達到endpos,則傳回 None。
函數參數說明:
string:被比對的字元串
pos:比對的起始位置,可選,預設為0
endpos:比對的結束位置,可選,預設為 len(string)
3. re.match和pattern.match差別
re.match方法與pattern.match()方法 差別在于,它不能指定比對的區 間pos和endpos兩個參數
