python中re模块中match和search

Python中,re模块中的match和search的区别解析。

  • match:从头开始匹配内容,要么第一个就符合要求,否则不符合.
  • search:匹配整个字符串,直到找到一个匹配。

一、match:

  1. re.match(规则,目标,[匹配模式])函数;
  2. 可以使用group方法获取匹配的数据;
  3. 可以使用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:

  1. re.search(规则,目标);
  2. 可以使用group方法获取匹配的数据;
  3. 可以使用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)

  可以看出,只要能匹配到就返回,查询整个字符串。

 

posted on 2022-09-22 14:56  一先生94  阅读(738)  评论(0编辑  收藏  举报

导航