1. -- 匹配不带文件后缀的
    2. local function get_file_name(filepath)
    3. return string.match(filepath, ".+/([^/]*)$")
    4. end
    5. -- 匹配带文件后缀的
    6. local function get_file_name(filepath)
    7. return string.match(filepath, "(.+)/[^/]*%.%w+$") --*nix system
    8. --return string.match(filepath, “(.+)\\[^\\]*%.%w+$”) windows
    9. end

    .+/([^/]*)$具体正则是如何实现的?

    1. .+/ 是什么意思?匹配多个字符加一个/
    2. ([^/]*):匹配0或多个非/的字符
    3. ``:匹配字符串结尾

    所以按理说有2、3就已经够了,从结尾开始的多个非/的字符?