擅长:python、mysql、java
<p>我不知道为什么你的正则表达式给你一个错误,它对我有用。或者换个正则表达式?你知道吗</p>
<p>用<code>r'.*\/([^_]*)_.*'</code>替换你的也可以:</p>
<pre><code>x = ['../../scene/temp_5a/458754/1_car.png',
'../../scene/temp_5a/458754/2_car.png',
'../../scene/temp_5a/458754/10_car.png',
'../../scene/temp_5a/458754/15_car.png',
'../../scene/temp_5a/458754/3_car.png']
def atoi(text):
return int(text) if text.isdigit() else text
def natural_keys(text):
return [ atoi(c) for c in re.split(r'.*\/([^_]*)_.*', text) ]
x.sort(key=natural_keys)
print x
</code></pre>
<p>输出:</p>
<pre><code>['../../scene/temp_5a/458754/1_car.png',
'../../scene/temp_5a/458754/2_car.png',
'../../scene/temp_5a/458754/3_car.png',
'../../scene/temp_5a/458754/10_car.png',
'../../scene/temp_5a/458754/15_car.png']
</code></pre>