正則表示式match和findall的區別
阿新 • • 發佈:2019-02-15
在python中match和findall兩個方法都可用於尋找字串中匹配的字串。其中match方法根據正則模式,從源字元的第一個字元開始匹配,如果尋找到了相應匹配模式,則返回相應結果,例如:
import re
s='abcd';
p = re.compile('abcd');
m = p.match(s);
print m.group();
這時程式會輸出:abcd
如果把源程式修改為:
import re
s='abcd';
p = re.compile('bcd');
m = p.match(s);
print m.group();
就不能匹配上相應字串,由此可以看出match匹配時是從源字串的第一個字元開始,如果匹配上了,就返回匹配結果,否則不能匹配到相應結果。
對於findall方法,並不是從源字串第一個字元開始匹配的,而是從第一個匹配上的字元開始,返回所有的可以匹配上的字元,例如:
import re
s='abcd';
p = re.compile('bcd');
m = p.findall(s);
print m;
返回的結果是:['bcd'],主要findall返回的是一個list物件。