擅长:python、mysql、java
<p>您应该使用<a href="https://docs.python.org/3.5/library/re.html#re.finditer" rel="nofollow">^{<cd1>}</a>而不是<a href="https://docs.python.org/3.5/library/re.html#re.findall" rel="nofollow">^{<cd2>}</a>,然后打印整个匹配组:</p>
<pre><code>>>> for m in re.finditer('(ra|RA)[a-zA-Z0-9]*',"RAJA45909"):
... print(m.group())
...
RAJA45909
</code></pre>
<p><code>findall</code>的文档说明:</p>
<blockquote>
<p>If one or more groups are present in the pattern, return a list of
groups; this will be a list of tuples if the pattern has more than one
group.</p>
</blockquote>
<p>您的regex只有一个组,因此结果是该组匹配的文本列表。如果我们添加其他组,您会看到:</p>
^{pr2}$
<p>因此<code>findall</code>与groups一起使用时匹配整个regex,但只返回与组匹配的部分。而<code>finditer</code>总是返回一个完全匹配的对象。在</p>