你如何使用string.find找到模式的最后一次出现?

时间:2015-01-07 12:01:25

标签: string lua find

我一直试图看看我是否可以找到模式的最后一次出现而不是第一次使用string.fing 对于前者:在字符串" AAAAABBB"我想找到最后一个" A"不是第一个。

这可能吗?

由于

2 个答案:

答案 0 :(得分:3)

local str = "123456AAA7890AAABBBB"
local s, e = str:find("A[^A]*$")

print(s)
print(str:sub(s))

或者反转字符串并使用更简单的string.find调用。

local str = "123456AAA7890AAABBBB"
local revstr = str:reverse()
local ind = revstr:find("A")

print(#revstr - ind + 1)
print(str:sub(#revstr - ind + 1))

答案 1 :(得分:3)

尝试使用空捕获:

str = "123456AAA7890AAABBBB"
print(str:match(".*()A"))

如果您需要使用string.find,请尝试以下操作:

local _,p = str:find(".*A")
print(p)