0

我正在试验 for 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后跟零个或多个任何东西,然后又是一个1

4

1 回答 1

0

您是否尝试过重叠匹配?

pattern1=re.compile('(?=(1.*?1))')
于 2014-02-20T20:13:24.523 回答