Lua string.gsub replace pattern
我正在研究图形计算器程序。我有一个显示'y ='函数的图形。
如果找到诸如'x * 5'之类的模式(x与某物相乘,但x先给出),我想用5x代替它。这是我目前拥有的。
1 2 3 4 5 6 7 8 9 | local func ="x * 5" print(func:gsub("%*",""):gsub("",""):gsub("x%d+","%d+x")) --[[ get rid of the '*' symbol, get rid of spaces, then replace x(digit) with (digit)x EXPECTED OUTPUT: 5x, OUTPUT: d+x ]] |
我当时想我可能可以使用string.reverse函数,但是我不知道该如何处理。谁能帮忙吗?
更新:这就是我现在所拥有的。它输出'2x.5'
1 2 | local func ="x * 5" print(func:gsub("%*",""):gsub("",""):gsub("x%d+", function(match) return match:sub(2) .. match:sub(1, 1)) |
我实际上想出了一种简单的方法。我决定解析功能以显示它(基本上从5 * x到5x)以显示它,而不是解析它。我这样做了,因此您可以在函数中输入3x,脚本会将其转换为3 * x,然后使用loadstring执行它。感谢您的帮助。