擅长:python、mysql、java
<p>你也许可以试试。。。你知道吗</p>
<pre><code>r'(.*?)(\.[^/]+)(.*)'
</code></pre>
<p><code>[^/]+</code>也允许您获得不同的扩展。如果你只想得到你提到的那些,就用<code>(\.abst|\.f4m|\.m3u8)</code>而不是<code>(\.[^/]+)</code>(不要把<code>?</code>放回去)</p>
<hr/>
<p>正则表达式中的<code>?</code>阻止了正确的匹配:</p>
<pre><code>(.*?)(\.abst|\.f4m|\.m3u8)?(.*)
</code></pre>
<p>这里,在字符串的开始处,<code>(.*?)</code>将尝试不匹配,并且<code>(\.abst|\.f4m|\.m3u8)?</code>也成功地在同一点(即在字符串的开始处)具有匹配(null)。你知道吗</p>
<pre><code>(.*)(\.abst|\.f4m|\.m3u8)?(.*)
</code></pre>
<p>在这里,<code>(.*)</code>是贪婪的,您将结束在字符串的末尾,并再次尝试匹配<code>(\.abst|\.f4m|\.m3u8)?</code>以获得匹配(null)。你知道吗</p>