Python re.search和re.findall的比較
阿新 • • 發佈:2018-05-31
color 分析 pan findall python span sea 條件 一個
Python re.search和re.findall的比較:
先分析re.search
import re s1=‘hjxxHelloxxrynxxPythonxxplkhjxxHixxrynxxWorldxxplk‘ f1=re.search(‘xx(.*?)xx‘,s1) print(f1) f2=re.search(‘xx(.*?)xx‘,s1).group(1) print(f2) f3=re.search(‘xx(.*?)xxrynxx(.*?)xx‘,s1) print(f3) f41=re.search(‘xx(.*?)xxrynxx(.*?)xx‘,s1).group(1)#這裏如果用group(3)則返回no such group,可見re.search尋找第一個滿足條件序列 print(f41) f42=re.search(‘xx(.*?)xxrynxx(.*?)xxplkhjxx(.*?)xxrynxx(.*?)xx‘,s1).group(3) print(f42)
print(‘end‘)
輸出為:
<_sre.SRE_Match object; span=(2, 11), match=‘xxHelloxx‘> #數據類型為‘sre.SRE_MATCH’
Hello #數據類型為‘str’
<_sre.SRE_Match object; span=(2, 24), match=‘xxHelloxxrynxxPythonxx‘>
Hello
Hi
end
再來看re.findall:
import re s1=‘hjxxHelloxxrynxxPythonxxplkhjxxHixxrynxxWorldxxplk‘ f1=re.findall(‘xx(.*?)xx‘,s1) print(f1) f2=re.findall(‘xx(.*?)xxrynxx(.*?)xx‘,s1) print(f2) print(f2[0]) print(f2[1][0]) print(type(f2)) print(type(f2[0])) print(type(f2[1][0])) print(‘end‘)
輸出為:
[‘Hello‘, ‘Python‘, ‘Hi‘, ‘World‘]
[(‘Hello‘, ‘Python‘), (‘Hi‘, ‘World‘)]
(‘Hello‘, ‘Python‘)
Hi
<class ‘list‘>
<class ‘tuple‘>
<class ‘str‘>
end
Python re.search和re.findall的比較