表5.懒惰限定符
代码/语法 说明
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
re.match(pat,text)解析
import re
pat=r'(.*) are (.*?) .*'
text='cats are some dogs' friends'
m=re.match(pat,text)
m.group()
m.group(1)
m.group(2)
结果:
'cats are some dogs' friends'
'cats'
'some'
解析:
pat里第一个(.*)规定了第一个正则表达式表示 are之前的所有…
其中句号可以指代任何一个字符,表示重复多次.的作用,即多个任意字符,在例子中为’cats’
第二个(.?)规定了第二个正则表达式 表示are之后的第一组空格之前的一个字符串
其中.*作用相同,?表示只选择了一个字符串,如果没有?的话,输出结果为
some dogs'