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

How do you find the last occurence of a pattern using string.find?

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

这可能吗?

谢谢

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))

尝试使用空捕获:

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

如果您需要使用 string.find,试试这个:

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