對比 | 返回值類型 | 返回值 |
re.search | 返回一個對象。使用group()獲得匹配的值,該值為str類型。 | 返回第一個成功的匹配 |
re.findall | 返回一個列表。列表中包含所有滿足條件的結果。 | 所匹配的所有子串 |
re.search 掃描整個字符串並返回第一個成功的匹配。
# -*- coding:utf-8 -*- import re str_a="name:zhangsan;age:20" searchResult=re.search("name:(.*?);",str_a)#匹配成功re.search方法返回一個匹配的對象,否則返回None #獲得匹配得結果 #1_包含匹配條件的結果 searchResult_all=searchResult.group()# name:zhangsan; #2_如果只想獲得匹配上(.*?) searchResult_part=searchResult.group(1)# zhangsan
re.match只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回None;而re.search匹配整個字符串,直到找到一個匹配。
re.findall在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。
# -*- coding:utf-8 -*- import re str_a="name:zhangsan;age:20;name:lisi;" searchResult=re.findall("name:(.*?);",str_a)#返回一個列表 ['zhangsan', 'lisi'] print (searchResult)