<p>你可以用</p>
<pre class="lang-py prettyprint-override"><code>(?m)^LIN[\w\W]*?\nHL.* # For any Python version
(?m)^LIN(?s:.*?)\nHL.* # For Python 3.6+
</code></pre>
<p>见<a href="https://regex101.com/r/jHRL7C/1/" rel="nofollow noreferrer">regex demo</a></p>
<p><em>详细信息</em>:</p>
<ul>
<li><code>(?m)</code>-一个内联的<code>re.M</code>修饰符标志,用于使<code>^</code>匹配任何行的起始位置</li>
<li><code>^</code>-行的开始</li>
<li><code>LIN</code>-<code>LIN</code>字符串</li>
<li><code>[\w\W]*?</code>/<code>(?s:.*?)</code>-任何零个或多个字符,尽可能少</li>
<li><code>\n</code>-换行符</li>
<li><code>HL</code>-<code>HL</code></li>
<li><code>.*</code>-行的其余部分</李>
</ul>
<p>见<a href="https://ideone.com/YB9D6d" rel="nofollow noreferrer">Python demo</a>:</p>
<pre class="lang-py prettyprint-override"><code>import re
text = "LIN**SI*ASN*BP*ITEM01*VP*1262702*CH*US\nSN1**300*PC\nPRF*5500015558****01\nPID*F****DESCRIPTION01\nREF*PK*000000051213\nCLD*1*300*PLT71\nREF*LS*0079393\nHL*3*1*I\nLIN**SI*ASN*BP*ITEM02*VP*1375541*CH*US\nSN1**64*PC\nPRF*5500014695****01\nPID*F****DESCRIPTION02\nREF*PK*000000051213\nCLD*1*24*PLT71\nREF*LS*0079393\nCLD*1*40*PLT71\nREF*LS*0079390\nHL*4*1*I"
print(re.findall(r'(?m)^LIN(?s:.*?)\nHL.*', text))
</code></pre>
<p>输出:</p>
<pre class="lang-py prettyprint-override"><code>[
'LIN**SI*ASN*BP*ITEM01*VP*1262702*CH*US\nSN1**300*PC\nPRF*5500015558****01\nPID*F****DESCRIPTION01\nREF*PK*000000051213\nCLD*1*300*PLT71\nREF*LS*0079393\nHL*3*1*I',
'LIN**SI*ASN*BP*ITEM02*VP*1375541*CH*US\nSN1**64*PC\nPRF*5500014695****01\nPID*F****DESCRIPTION02\nREF*PK*000000051213\nCLD*1*24*PLT71\nREF*LS*0079393\nCLD*1*40*PLT71\nREF*LS*0079390\nHL*4*1*I'
]
</code></pre>