在Lua文件中是否容易找到所有字符串文字?

时间:2019-04-15 11:29:25

标签: string lua

在我的项目中,如果可以在Lua文件中找到所有字符串文字,我发现它非常有用,因为我的团队要求将每个包含任何非英语字符的字符串文字都放置在某些给定的定义文件中,而我偶尔违反此规则。如果可以使用这种方法,那么我可以进一步检查它们,并轻松提取出非英语字符的内容。当然,这里的“位置”是指在控制台或文件中输出位置。

当然,最明显的方法是在给定的Lua文件中查找所有双引号,但是这将在注释中包含字符串文字,这也太残酷了。所以我想知道是否有某种优雅的方法来实现这一目标?非常感谢!

1 个答案:

答案 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