擅长:python、mysql、java
<p>为了只找到第一个匹配项,Toto的答案是最好的,但是正如您所说的,您只需要使用<code>findall</code>,您可以在regex的末尾附加<code>.*</code>,以匹配剩余的文本,这不会导致任何进一步的匹配。你知道吗</p>
<pre><code>(\bHumans?\b.*?\bFoods?\b).*
^^ This eats remaining part of your text due to which there won't be any further matches.
</code></pre>
<p><strong><a href="https://regex101.com/r/6iU1d7/1" rel="nofollow noreferrer">Demo</a></strong></p>
<p>Python代码示例</p>
<pre><code>import re
text = "Why do Humans need to eat food? Humans eat food to survive."
p =r'(\bHumans?\b.*?\bFoods?\b).*'
print(re.findall(p, text, re.I|re.M|re.DOTALL))
</code></pre>
<p>指纹</p>
<pre><code>['Humans need to eat food']
</code></pre>