match和search的区别

一、match

match从字符串的起始位置开始匹配,如果匹配成功,就返回第一个对象。

import re  
  
m = re.match('bat|bae','eatbat')  
if m is not None:  
    print(m.group())  
else:  
    print('没有找到')  


>>>没有找到

二、search

search工作方式与match类似,只是search从字符串的任意位置开始匹配,并返回第一个匹配的对象。

import re  
  

n = re.search('bat|bae','eatbat')  
if n is not None:  
    print(n.group())  
else:  
    print('没找到')  


>>>bat

三、区别

match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none

re.match("c", "abcdef")    # No match
re.search("^c", "abcdef")  # No match
re.search("^a", "abcdef")  # Match

 

 

智者一切求自己,愚者一切求他人。

你可能感兴趣的:(match和search的区别)