擅长:python、mysql、java
<p>问题在于所使用的正则表达式。
<code>(.*)</code>块接受的字符串比您意识到的要多-<code>.*</code>被称为贪婪操作,它将在仍然匹配的情况下消耗尽可能多的字符串。这就是为什么您只看到一个输出</p>
<p>建议匹配类似<code>Vacation Allowance:\s*\d+;</code>或类似的内容</p>
<pre><code>text = '02/05/2020 Vacation Allowance: 21; 02/05/2020 Vacation Allowance: 22; nnn'
m = re.findall('Vacation Allowance:\s*(\d*);', text, re.M)
print(m)
</code></pre>
<p>结果:<code>['21', '22']</code></p>