我不懂的正则表达式

| 我将主攻luadoc中的这几行(略作修改)的行,这些行显然正在构建具有完整路径的文件名。但是我根本不明白第5行会发生什么。 参数“ 0”可能类似于\“ 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
第5行会发生什么?     
已邀请:
h = options.output_dir .. string.gsub (h, \"^.-([%w_]+%.tex)$\", \"%1\")
该模式匹配任何以零个或多个非字母数字字符(例如,空格等)开头的字符串,然后是一个或多个字母数字字符和下划线(可能是文件名),句点和随后以“ \ tex \”结尾的字符串。它捕获文件名+ \“。tex \”供以后使用。基本上,它的文件名开头带有可能的垃圾字符(空格),然后将其替换为纯净版本,然后再将输出目录添加到文件开头。 现在,可能引起您困惑的是ѭ3匹配任何字符。但是,当以“ 4”结尾修饰时,则表示\“下一个匹配项之前的零个或多个字符的最短字符串\”-即非贪婪搜索。从字符串开头找到的所有字符都将匹配,直到找到与化合物“ 5”匹配的内容-字母数字或下划线。     

要回复问题请先登录注册