python中re模块中match和search
Python中,re模块中的match和search的区别解析。
- match:从头开始匹配内容,要么第一个就符合要求,否则不符合.
- search:匹配整个字符串,直到找到一个匹配。
一、match:
- re.match(规则,目标,[匹配模式])函数;
- 可以使用group方法获取匹配的数据;
- 可以使用span方法获取匹配数据的下标;
看代码:(匹配不到)
import re
line = "Cats are smarter than dogs"
matchObj = re.match( r'dogs', line, re.M|re.I)
if matchObj:
print ("match --> matchObj.group() : ", matchObj.group())
print("match --> matchObj.group() : ", matchObj.span())
else:
print ("No match!!")
## No match!!
上述match匹配不成功!!!
看代码 (匹配成功)
import re
line = "Cats are smarter than dogs"
matchObj = re.match( r'Cats', line, re.M|re.I)
if matchObj:
print ("match --> matchObj.group() : ", matchObj.group())
print("match --> matchObj.group() : ", matchObj.span())
else:
print ("No match!!")
# match --> matchObj.group() : Cats
# match --> matchObj.group() : (0, 4)
二、search:
- re.search(规则,目标);
- 可以使用group方法获取匹配的数据;
- 可以使用span方法获取匹配数据的下标;
看代码:
import re
line = "Cats are smarter than dogs"
matchObj2 = re.search( r'dogs', line, re.M|re.I)
if matchObj2:
print ("search --> matchObj.group() : ", matchObj2.group())
print("search --> matchObj.group() : ", matchObj2.span())
else:
print ("No match!!")
#search --> matchObj.group() : dogs
#search --> matchObj.group() : (22, 26)
可以看出,只要能匹配到就返回,查询整个字符串。
浙公网安备 33010602011771号