擅长:python、mysql、java
<p><strong>这不仅包括函数定义(与其他答案一样),还包括整个函数。</strong></p>
<pre><code>^def \w+\([^\f\v\r\n]*?\)\:[\s\S]+?^(?![ \t#])
</code></pre>
<p>解释</p>
<p><code>^def </code>匹配一行的开头,后跟一个“def”和一个空格“”</p>
<p><code>\w+</code>与函数名匹配</p>
<p><code>\([^\f\v\r\n]*?\)\:</code>匹配一个括号,其中包含任何不是新行开头的内容(lazy),后跟“:”</p>
<p><code>[\s\S]+?</code>完全匹配任何内容(懒惰)</p>
<p><code>^</code>匹配行的开头</p>
<p><code>(?![ \t#])</code>要求下一步不是空格、制表符或注释的开头</p>