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
print(re.match(r'How', 'How are you').span()) # 在起始位置匹配
print(re.match(r'are', 'How are you')) # 不在起始位置匹配
以上輸出結果為:
(0, 3) None
例2
以上執行結果如下:
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兩個參數