擅长:python、mysql、java
<p>您需要一个非贪婪的<code>+?</code>而不是<code>+</code>,因为出现在结束序列中的所有字符都在中间的括号中</p>
<pre><code>end = r' \n \n\n '
result = re.findall(r'Table[^:]*:[a-zA-Z0-9 :&–=\n%@,()°-]+?' + end, contents)
#result = ['Table 3.1: Joined Liq L1 (P = 40 \n@ 12), Test With 2 % \n\noF \n \n\n ']
# to chop off the end, if needed:
result = [x[:-len(end)] for x in result]
</code></pre>
<p>示例中的<code>[^ \n \n\n ]</code>部分等于<code>[^ \n]</code>,“不是换行符或空格的字符”</p>