Регулярное выражение, которое я не понимаю

Я обращаю внимание на эти несколько (слегка измененных) строк из luadoc, которые, очевидно, создают имя файла с полным путем. Но я просто не понимаю, что происходит в строке 5. The parameter filename could be something like "myfile.lua".

function out_file (filename)
  local h = filename
  h = string.gsub(h, "lua$", "tex")
  h = string.gsub(h, "luadoc$", "tex")
  h = options.output_dir .. string.gsub (h, "^.-([%w_]+%.tex)$", "%1")
  return h
end

What does happen in line 5?

9
задан nhahtdh 15 January 2014 в 20:34
поделиться