Python内置模块:re

正则表达式模块re

import re
from pprint import pprint

files = ["tank_1_color_v0.rat",
         "tank_2_color_v5.rat",
         "tank_1_color_v3.rat",
         "tank_3_color_v1.rat",
         "tank_4_color_v2.rat",
         "tank_4_color_v4.rat",
         "tank_5_color_v1.rat",
         "tank_6_color_v6.rat"]

pat_num = re.compile("\D+_(\d+)_")
pat_ver = re.compile("(\d+)\D+$")

def sorter_num(elem):
    res = re.search(pat_num, elem)
    return res.groups()[0]

def sorter_ver(elem):
    res = re.search(pat_ver, elem)
    return res.groups()[0]

# pprint(sorted(files, key=sorter_num))
pprint(sorted(files, key=sorter_ver))