您的位置:首页 > 其它

正则表达式match和findall的区别

2014-04-17 16:06 344 查看
在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对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: