擅长:python、mysql、java
<p>作为一种替代方法,您可以匹配开始<code>^NEVPT2.*\n</code>处的行,并使用多行标志继续匹配所有不以end开头的行,使用负的lookahead <code>(?!end$)</code></p>
<pre><code>^NEVPT2.*\n(?:(?!end$).*\n)*end$
</code></pre>
<p><a href="https://regex101.com/r/njlwI7/1" rel="nofollow noreferrer">Regex demo</a>| <a href="https://ideone.com/nUyoSB" rel="nofollow noreferrer">Python demo</a></p>
<p>例如</p>
<pre><code>NEVPT2_Section = r"^NEVPT2.*\n(?:(?!end$).*\n)*end$"
NEVPT2_Section_mathes = re.finditer(NEVPT2_Section, inp_content, re.MULTILINE)
for xyz in NEVPT2_Section_mathes:
print(xyz.group())
</code></pre>