擅长:python、mysql、java
<p>相反,由于<a href="http://www.regular-expressions.info/catastrophic.html" rel="nofollow">catastrophic backtracking</a>的原因,这个过程非常缓慢</p>
<pre><code>((?:^(?:[\w:]+/?)+)|(?:(?<=/)(?:[\w]+/?)+))/dev/model/
</code></pre>
<p>试试这个</p>
<pre><code>(^[\w:]+(?:/\w+)*|(?<=/)\w+(?:/\w+)*)/dev/model/
</code></pre>
<p>或者这个</p>
<pre><code>(^[\w:]+[\w/]*|(?<=/)[\w/]+)/dev/model/
</code></pre>
<hr/>
<p>您可能需要考虑一种方法,首先使用<code>re.match</code>和<code>(\w:)?(/\w+)+$</code>等模式验证字符串</p>
<p>然后,当您已经可以期望某个结构时,可以使用更简单的regex来提取数据:</p>
<pre><code>/?([^/]*(?:/[^/]+)*)/dev/model/
</code></pre>