<p>结果中包含元组,因为<a href="https://docs.python.org/3/library/re.html#re.findall" rel="nofollow noreferrer">re.findall</a>返回捕获组的值</p>
<p>但是您可以省略捕获组,并将模式更改为单个匹配,在字符a-Z a-Z之间至少匹配一个数字,并使用正向先行断言至少8个字符</p>
<pre><code>\b(?=[A-Za-z0-9]{8})[A-Za-z]*\d[A-Za-z\d]*\b
</code></pre>
<ul>
<li><code>\b</code>单词边界</li>
<li><code>(?=[A-Za-z0-9]{8})</code>正向前瞻,断言列出的任何范围至少出现8次</li>
<li><code>[A-Za-z]*</code>可选地匹配字符a-Z a-Z</li>
<li><code>\d</code>匹配一个数字</li>
<li><code>[A-Za-z\d]*</code>可选匹配字符a-Z a-Z或数字</li>
<li><code>\b</code>单词边界</li>
</ul>
<p>见a<a href="https://regex101.com/r/Z7yiTy/1" rel="nofollow noreferrer">regex demo</a>或a<a href="https://ideone.com/1e58Eu" rel="nofollow noreferrer">Python demo</a></p>
<pre><code>import re
from pprint import pprint
pattern = r"\b(?=[A-Za-z0-9]{8})[A-Za-z]*\d[A-Za-z\d]*\b"
s = "https://stackoverflow.com/questions/59800512/ 510557XXXXXX2302 Normal words 1601371803 NhLw6NlR0EksRWkLddEo7NiEvrg https://www.google.com/search?q=some+google+search&oq=some+google+search&aqs=chrome..69i57j0i22i30l8j0i390.4672j0j7&sourceid=chrome&ie=UTF-8"
pprint(re.findall(pattern, s))
</code></pre>
<p>输出</p>
<pre><code>['59800512',
'510557XXXXXX2302',
'1601371803',
'NhLw6NlR0EksRWkLddEo7NiEvrg',
'69i57j0i22i30l8j0i390',
'4672j0j7']
</code></pre>