6.2. re模块的search的含义和用法及查找后group的含义

参考这里

Match Object Methods Description
group(num=0) This methods returns entire match (or specific subgroup num)
groups() This method return all matching subgroups in a tuple (empty if there weren’t any)

知道了,原来group(0),是所有匹配的内容,而group(N)指的是原先subgroup子组对应的内容,而subgroup是原先search等规则中,用括号()所括起来的。

举例1:

#!/usr/bin/python
import re
line = "Cats are smarter than dogs";
matchObj = re.search( r'(.*) are(\.*)', line, re.M|re.I)
if matchObj:
  print "matchObj.group() : ", matchObj.group()
  print "matchObj.group(1) : ", matchObj.group(1)
  print "matchObj.group(2) : ", matchObj.group(2)
else:
  print "No match!!"
    

输出是:

matchObj.group(): Cats are
 matchObj.group(1) : Cats
 matchObj.group(2) :
    

举例2:字符串:

var pre = [false,'', '','\/recommend_music/blog/item/.html'];

然后去search:

match = re.search(r"var pre = \[(.*?),.*?,.*?,'(.*?)'\]", page, re.DOTALL | re.IGNORECASE | re.MULTILINE)print "match(0)=", match.group(0),"match(1)=",match.group(1),"match(2)=",match.group(2),"match(3)=",match.group(3)

得到的输出是:

match(0)= var pre = [false,'', '','\/recommend_music/blog/item/.html']
match(1)= false
match(2)= \/recommend_music/blog/item/.html
match(3)=