擅长:python、mysql、java
<p>正则表达式不计算重叠匹配数。在</p>
<p>但是,您可以轻松地修改代码,以:</p>
<pre><code>import re
patregex=re.compile(r'10*1')
text= raw_input().strip('\n')
cnt = 0
pos = 0
match = patregex.search(text)
while match:
match = patregex(text,<b>match.end()-1</b>)
cnt += 1
print(cnt)</code></pre>
<p>所以在这里,当我们找到一个<code>match</code>时,我们将尝试从另一个匹配开始并找到上一个匹配的<code>match.end()-1</code>,直到找不到其他匹配为止。我们这样做直到找不到匹配的。对于每个匹配,我们递增<code>cnt += 1</code>。在</p>
<p>我们可以使用<code>match.end()-1</code>,因为每个匹配都以1开头,后跟0或更多0,然后是另一个1。所以我们知道模式只能在最后一场比赛中重新开始。在</p>
<p>这种方法还可以节省内存:因为在找到第一个匹配项之后,在查找下一个匹配项时,您可以简单地忘记该匹配项。<code>findall(..)</code>方法需要同时将所有匹配项存储在内存中。在</p>