擅长:python、mysql、java
<p><code>project+</code>表示<code>projec</code>后跟一个或多个<code>t</code>。考虑到您希望在<code>[</code>之后获得匹配,并且不跨越到行的末尾<code>^</code>和<code>$</code>是用于此任务的错误工具。我建议如下:</p>
<pre><code>import re
text = '''[project_machine 332800MB 256256MB 23%
project_machine2 665600MB 512512MB 23%]'''
machines = re.findall(r'project\S+', text)
print(machines)
</code></pre>
<p>输出</p>
<pre><code>['project_machine', 'project_machine2']
</code></pre>
<p>说明:获取<code>project</code>后跟任何非空白(<code>\S</code>)。注意使用所谓的原始字符串使转义更容易。有关使用<code>re</code>模块的原始字符串的讨论,请参见<a href="https://docs.python.org/3/library/re.html" rel="nofollow noreferrer">re docs</a></p>