Lua 获取字符串中最后一个模式匹配

我有一个字符串,想要获取最后一个数字的出现位置(目前 string.match 只能获取第一个位置)

testvar = "350.11$ 我支付了$320,使用了 Visa,现金,200.21,Mastercard,购物,饮食"

print ("最后一个数字: ".. string.match (testvar, "(%d*%.?%d+)"))

在这种情况下,我想要得到 200.21 作为结果(而不是目前的 350.11

点赞
用户107090
用户107090

试试这个

local last
for w in string.gmatch(testvar, "(%d*%.?%d+)") do
    last = w
end
print(last)
2017-11-19 13:10:50
用户355372
用户355372

感谢 Egor 和你们所有人,你们都很棒。

我选择这两种作为答案

string.match (testvar:reverse(), "(%d+%.?%d*)"):reverse()
string.match (testvar, ".*%f[%d.](%d*%.?%d+)")

你认为哪一个更好?

2017-11-20 00:06:24