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