Lua使用string.match获取最后一次模式

时间:2017-11-19 11:24:57

标签: string lua pattern-matching

我有一个字符串,希望最后一个数字出现 (现在我的string.match只接受第一次出现)

testvar = "350.11$ i paid, 320$, with visa, cash, 200.21, mastercard, shopping, food"

print ("last number: ".. string.match (testvar, "(%d*%.?%d+)"))

在这种情况下,我希望200.21作为结果(现在不是350.11

2 个答案:

答案 0 :(得分:1)

试试这个

local last
for w in  string.gmatch (testvar, "(%d*%.?%d+)") do
    last = w
end
print(last)

答案 1 :(得分:0)

感谢Egor和其他所有人,你真是太棒了。

我选择了这两个作为答案

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

你认为什么是更好的?