擅长:python、mysql、java
<p>试试这个正则表达式:</p>
<pre><code>\/begin FUNCTION\s*(\w+)\s*"(?:(?!end FUNCTION)[\s\S])*?(\w+)"[\s\S]*?FUNCTION_VERSION\s*"([^"\s]+)"
</code></pre>
<p><strong><a href="https://regex101.com/r/o8rshs/3" rel="nofollow noreferrer">Click for Demo</a></strong></p>
<p><strong>说明:</strong></p>
<ul>
<li><code>\/begin FUNCTION\s*</code>-匹配<code>/begin FUNCTION</code>,后跟0+空格</li>
<li><code>(\w+)</code>-匹配1+个单词字符,并将其捕获到组1中。这是函数的名称</li>
<li><code>\s*"</code>-匹配0+个空格,后跟<code>"</code></li>
<li><code>(?:(?!end FUNCTION)[\s\S])*?</code>-匹配任何字符直到以短语<code>end FUNCTION</code>开头的标记</li>
<li><code>(\w+)</code>-匹配1+个单词字符并将其存储在组2中。这就是你的名字</li>
<li><code>"[\s\S]*?FUNCTION_VERSION\s*"</code>-匹配<code>"</code>,后跟0+个字符,后跟<code>FUNCTION_VERSION</code>,后跟0+个空格,后跟<code>"</code></li>
<li><code>([^"\s]+)</code>-匹配1+个既不是<code>"</code>也不是空白的字符。这是在组3中捕获的,包含您的版本号。你知道吗</li>
<li><code>"</code>-匹配<code>"</code></li>
</ul>