擅长:python、mysql、java
<p>将<code>result.groups()</code>更改为<code>result.group(1)</code>,您将只得到单个字母的匹配。在</p>
<p>代码的第二个问题是它不会在一行找到多个结果。你需要用cd4{3}代替cd3}。<code>findall</code>将返回字符串或字符串元组,而<code>finditer</code>返回匹配对象。在</p>
<p>我在这里找到了同样的问题:</p>
<pre><code>import urllib
import re
pat = re.compile('[a-z][A-Z]{3}([a-z])[A-Z]{3}[a-z]')
print ''.join(pat.findall(urllib.urlopen(
"http://www.pythonchallenge.com/pc/def/equality.html").read()))
</code></pre>
<p>注意,<code>re.findall</code>和{<cd5>}返回非重叠结果。因此,当使用上面的模式时,<code>re.findall</code>搜索字符串<code>'aBBBcDDDeFFFg'</code>,唯一匹配的将是<code>'c'</code>,而不是{<cd13>}。幸运的是,这个Python挑战问题不包含这样的示例。在</p>