在我的项目中,如果可以在Lua文件中找到所有字符串文字,我发现它非常有用,因为我的团队要求将每个包含任何非英语字符的字符串文字都放置在某些给定的定义文件中,而我偶尔违反此规则。如果可以使用这种方法,那么我可以进一步检查它们,并轻松提取出非英语字符的内容。当然,这里的“位置”是指在控制台或文件中输出位置。
当然,最明显的方法是在给定的Lua文件中查找所有双引号,但是这将在注释中包含字符串文字,这也太残酷了。所以我想知道是否有某种优雅的方法来实现这一目标?非常感谢!
答案 0 :(得分:2)
您可以使用luac -p -l -l foo.lua
,它将列出foo.lua中使用的常量,包括字符串。
如果可以使用外部工具,请尝试使用Lua lexer的ltokenp。
这是一个示例脚本,可以帮助您入门。将其另存为strings.lua
,并使用ltokenp -s strings.lua foo.lua bar.lua
处理文件。
-- token filter: extract strings
local FILE
function FILTER(line,token,text,value)
if text=="<file>" then
FILE=value:sub(2)
elseif text=="<string>" then
print(FILE,line,string.format("%q",value))
end
end