re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配,可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式
语法:
re.match(pattern, string, flags=0)
函数参数说明:
pattern 匹配的正则表达式
string 要匹配的字符串
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等
import re
name = "hi panpan "
matchObj = re.match( 'panpan', name, re.M|re.I)
if matchObj:
print ("match --> : ", matchObj.group())
else:
print ("No match!!!")
语法:
re.search(pattern, string, flags=0)
函数参数说明:
pattern 匹配的正则表达式
string 要匹配的字符串
flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等
import re
name = "hi panpan "
matchObj = re.search('panpan', name, re.M|re.I)
if matchObj:
print ("search --> : ", matchObj.group())
else:
print ("No match!!!")
import re
name = "hi panpan "
matchObj = re.match( 'panpan', name, re.M|re.I)
if matchObj:
print ("match --> : ", matchObj.group())
else:
print ("No match!!!")
matchObj = re.search('panpan', name, re.M|re.I)
if matchObj:
print ("search --> : ", matchObj.group())
else:
print ("No match!!!")
返回结果:
No match!!
search --> : panpan
解析:
使用re.match时,要匹配的字符串panpan不是第一个,所以返回None 不匹配
使用re.search时,要匹配的字符串panpan在name里,所以可以进行匹配,只需要在这个字符串中,不管位置在哪都会找出来