擅长:python、mysql、java
<p><code>^(.*-[^-]{5})[^-]*$</code>
捕获组1是您需要的</p>
<p><a href="https://regex101.com/r/SYz9i5/1" rel="nofollow noreferrer">https://regex101.com/r/SYz9i5/1</a></p>
<p>解释</p>
<pre><code>^(.*-[^-]{5})[^-]*$
^ Start of line
( Capture group 1 start
.* Any number of any character
- hyphen
[^-]{5} 5 non-hyphen character
) Capture group 1 end
[^-]* Any number of non-hyphen character
$ End of line
</code></pre>
<hr/>
<p>另一个更简单的是</p>
<p><code>^(.*-.{5}).*$</code></p>
<p>这应该是直截了当的</p>
<p>这是利用第一个<code>.*</code>的贪婪行为匹配,它将尝试尽可能多地匹配,因此<code>-</code>将是后面至少有5个字符的最后一个。
<a href="https://regex101.com/r/CFqgeF/1/" rel="nofollow noreferrer">https://regex101.com/r/CFqgeF/1/</a></p>