re.search 掃描整個字符串並返回第一個成功的匹配,若是匹配失敗search()就返回None。正則表達式
re.search(pattern, string, flags=0)
pattern 匹配的正則表達式ide
string 要匹配的字符串函數
flgs 標誌位,用於控制正則表達式的匹配方式spa
group(num=0) 獲取匹配結果的各個分組的字符串,group() 能夠一次輸入多個組號,此時返回一個包含那些組所對應值的元組。code
groups() 返回一個包含全部分組字符串的元組。對象
注意:若是未匹配成功,search()返回值爲None,此時再使用group()、groups() 方法會報錯。blog
應該先獲取匹配對象,而後判斷匹配對象是否非空,當非空時在使用group()、groups() 方法獲取匹配結果。見實例2
字符串
以上輸出結果爲:string
(0, 3) (4, 7)
import re content = 'Hi zeke,how old are you' result = re.search(r'\d+' , content) if result: print result.group() else: print 'No match!' rs = re.search(r'\w{4}' , content) if rs: print rs.group() else: print 'No match!'
以上執行結果以下:
it
No match!
zeke
pattern.search( string, pos=0, endpos=len(string))
這個方法將在字符串string的pos位置開始 嘗試匹配pattern(pattern就是經過 re.compile()方法編譯後返回的對象),如 果pattern匹配成功,不管是否達到結束位 置endpos,都會返回一個匹配成功後的Match對象;
若是匹配不成功,或者 pattern未匹配結束就達到endpos,則返回 None。
string:被匹配的字符串
pos:匹配的起始位置,可選,默認爲0
endpos:匹配的結束位置,可選,默認爲 len(string)
re.search方法與pattern.search()方法 區別在於,它不能指定匹配的區 間pos和endpos兩個參數
re.match只匹配字符串的開始,若是字符串開始不符合正則表達式, 則匹配失敗,並返貨None;
re.search匹配整個字符串, 直到找到一個匹配,若是整個字符串都沒匹配到,則返回None。