python正則匹配re.search與re.findall的區別


對比 返回值類型 返回值
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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM