1. 程式人生 > >正則表示式match和findall的區別

正則表示式match和findall的區別

在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物件。