擅长:python、mysql、java
<p>您可以使用积极的前瞻来实现这一点:</p>
<pre><code>(?s)(my _car_\s*.*?)(?=(?:\n{2}|\Z))
</code></pre>
<p><code>(?=(?:\n{2}|\Z))</code>断言<code>_car_</code>之后的部分后跟2个换行符或字符串的结尾(<code>\Z</code>)。你知道吗</p>
<p>测试:</p>
<pre><code>>>> import re
>>> with open('in1.txt') as f:
... lines = f.read()
... m = re.findall(r'(?s)(my _car_\s*.*?)(?=(?:\n{2}|\Z))', lines)
... for i in m:
... print i
...
my _car_(10)
skoda
audi
my _car_(11)
benz
</code></pre>