Lua string.gsub 用于替换匹配到的字符串。

我正在开发一个图形计算器程序。我有一个显示“y =”函数的图形。

如果找到类似“x * 5”的模式(其中x被乘以某些东西,但x首先被给定),我想用5x替换它。这是我目前拥有的。

local func = "x * 5"
print(func:gsub("%*", ""):gsub(" ", ""):gsub("x%d+", "%d+x"))

--[[
    去掉 '*' 符号、去掉空格、然后将 x(digit) 替换为 (digit)x

    预期输出:5x,输出结果:d+x
]]

我想我可以使用string.reverse函数,但我不知道该如何处理。有人能帮忙吗?

更新:这是我现在拥有的。它输出“2x.5”。

local func = "x * 5"
print(func:gsub("%*", ""):gsub(" ", ""):gsub("x%d+", function(match) return match:sub(2) .. match:sub(1, 1))
点赞
用户3998938
用户3998938

我实际上找到了一个简单的方式来解决它。而不是解析函数以显示它(基本上是将 5 * x 转成 5x),我决定采取完全相反的做法。我让你可以输入 3x 到函数中,然后脚本将把它转换成 3 * x 然后使用 loadstring 执行它。感谢您的帮助。

2014-10-03 18:10:00