擅长:python、mysql、java
<p>您可以匹配歌曲,然后在组中捕获所有不以2个大写字符开头的行</p>
<pre><code>^SONG\b.*((?:\r?\n(?![A-Z]{2}).*)*)
</code></pre>
<p><a href="https://regex101.com/r/wwujYD/1" rel="nofollow noreferrer">Regex demo</a></p>
<p>或者,如果行只能包含大写字母,并且也应以一个开头:</p>
<pre><code>^SONG\b.*((?:\r?\n(?![A-Z][A-Z ]*$).*)*)
</code></pre>
<ul>
<li><code>^</code>字符串的开头</li>
<li><code>SONG\b.*</code>匹配歌曲、单词边界和行的其余部分</li>
<li><code>(</code>捕获组1
<ul>
<li><code>(?:</code>非捕获组
<ul>
<li><code>\r?\n(?![A-Z][A-Z ]*$).*</code>如果新行不只包含大写字符,则将其与该行的其余部分匹配</li>
</ul>
</li>
<li><code>)*</code>关闭组并匹配所有行</li>
</ul>
</li>
<li><code>)</code>关闭组1</li>
</ul>
<p><a href="https://regex101.com/r/2J9jUM/1" rel="nofollow noreferrer">Regex demo</a><a href="https://ideone.com/d8PaQK" rel="nofollow noreferrer">Python demo</a></p>