【发布时间】:2011-08-06 12:15:43
【问题描述】:
我正在关注 luadoc 中的这几行(稍作修改),这些行显然是在构建具有完整路径的文件名。但我根本不明白第 5 行发生了什么。
参数filename 可能类似于“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 行发生了什么?
【问题讨论】:
-
提供一个示例输入字符串,我们可以告诉你它在做什么?
-
理解 Lua 模式的关键是它们实际上不是“正则表达式”。它们相似,但语法和语义都不同,足以引起混淆。虽然听起来很傻,但学会称它们为“模式”而不是“正则表达式”可能会帮助你提高理解能力,让你有一个有空间思考差异的心智模型。之后,很容易记住
%是模式中的转义字符,而在正则表达式中是``;模式中没有交替,等等。
标签: regex lua lua-patterns luadoc