我正在试验regex lazy matches
。
当我尝试这个时:
>>> text='<em>Hello <>World</em>'
>>> pattern3=re.compile('<.*?>')
>>> for mat in re.findall(pattern3,text):
... print mat
...
<em>
<>
</em>
它按预期工作,并提供可能的三个匹配 但是当我尝试这个时:
>>> text="1011"
>>> pattern1=re.compile('1.*?1')
>>> for mat in re.findall(pattern1,text):
... print mat
...
101
我只获得一个输出,但我应该101 and 11
,为什么11
没有匹配。
我的regex '1.*?1'
会查找1
后跟0或更多内容,再次1
。
答案 0 :(得分:0)
您是否尝试过重叠匹配?
pattern1=re.compile('(?=(1.*?1))')