说说Python中search()和match()的区别?

640?wx_fmt=gif

公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!


小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。


废话不多说,开始今天的题目:


问:说说Python中search()和match()的区别?

答:match()和search()两者都是测试正则表达式与字符串是否匹配。不同的是,match() 如果在字符串的开头有0个或更多个字符,符合正则表达式模式,返回相关匹配的实例对象,如果字符串不符合正则表达式模式则返回None;而search()则不同,扫描整个字符串,如果产生了一个匹配正则模式就寻找到这个位置,返回相关匹配的对象。如果没有位置能够匹配这个模式则返回None。


下面用个简单的代码给大家看一下:

扫描二维码关注公众号,回复: 8960737 查看本文章


 
    

import re
str = "谢谢您,关注公众号:程序IT圈";

result = re.match('程序IT圈', str)
print(result); //None

result2 = re.match('谢谢您', str)
print(result2); //<re.Match object; span=(0, 3), match='谢谢您'>

result3 = re.search('程序IT圈', str)
print(result3); //<re.Match object; span=(10, 15), match='程序IT圈'>

result4 = re.search('程序员', str)
print(result4); //None


  • re.match() 从第一个字符开始找, 如果第一个字符就不匹配就返回None, 不继续匹配. 用于判断字符串开头或整个字符串是否匹配,速度快.

  • re.search() 会整个字符串查找,直到找到一个匹配。


如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言!




关注小猿公众号,每天学习一道题


640?wx_fmt=jpeg

发布了132 篇原创文章 · 获赞 45 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/liliangpin/article/details/103141940