当前位置: 首页 > 工具软件 > rematch > 使用案例 >

python---正则表达式(re.match与re.search的区别)

李昌勋
2023-12-01


前言

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配,可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式

一、re.match正则匹配

语法:
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正则匹配

语法:
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!!!")

三、re.match与re.search区别

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里,所以可以进行匹配,只需要在这个字符串中,不管位置在哪都会找出来

 类似资料: