正则表达式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对象。
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对象。
相关文章推荐
- PHP函数preg_match_all正则表达式的简单应用
- js正则表达式中test,exec,match方法的区别说明
- JAVA正则表达式,matcher.find()和 matcher.matches()的区别
- 正则表达式中 test(),exec(),match() 方法的区别
- python 正则表达式 之re.findall
- javascript 正则表达式的组、全局、RegExp.exec()和string.match()区别
- js正则表达式中test,exec,match方法的区别说明
- PHP与正则表达式 2 :一些修饰符与preg_match_all
- Python正则表达式---全部能匹配的子串迭代器finditer及findall及以中文匹配部分中文
- Java正则表达式之Matcher类的find和matches方法的区别
- PHP函数preg_match_all正则表达式的基本使用详细解析
- java正则表达式中 matcher.find()和 matcher.matches()的区别 .
- Python 正则表达式:findall
- JAVA正则表达式,matcher.find()和 matcher.matches()的区别
- PHP 正则表达式匹配函数 preg_match 与 preg_match_all
- 正则表达式中 test、exec、match 方法区别
- 正则表达式二 :re.findall()和元字符
- preg_match_all 正则表达式贪婪与非贪婪模式
- java正则表达式 match 和 find
- PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)