擅长:python、mysql、java
<p>这不一定是正则表达式的工作!你知道吗</p>
<pre><code>def reformat(a):
x = a.split("-")
x[-1] = "%03d"%int(x[-1])
return "-".join(x)
</code></pre>
<p>示例用法:</p>
<pre><code>In [14]: reformat("12345-0012-0001")
Out[14]: '12345-0012-001'
</code></pre>
<p>因此,在这里给出一些其他答案:</p>
<pre><code>In [55]: %timeit v[:len(v)-4]+str(int(v.split('-')[2]))
100000 loops, best of 3: 1.83 us per loop
In [56]: %timeit reformat(v)
100000 loops, best of 3: 1.99 us per loop
In [57]: %timeit re.sub('(\d+-\d+-)0+(\d+)', r'\1\2', x)
100000 loops, best of 3: 9.53 us per loop
</code></pre>
<p>正则表达式在这里是过度杀伤力的,而且与仅仅使用内置表达式相比速度很慢。你知道吗</p>