string.find
возвращает начальную и конечную позиции матча.Итак, стартовый индекс - это та переменная _
, которую вы проигнорировали.
Ваша проблема в том, что ваш шаблон на самом деле не соответствует тому, что вы ищете.Если вы хотите последнюю последовательность символов «А», вам нужно сделать что-то еще.Например:
local start, final = 1, 1
while(final)
local temp_start, temp_final = str:find("A+", end)
if(temp_start) then
start, final = temp_start, temp_final
else
final = nil
end
end
Более умный, основанный на шаблонах метод будет выглядеть так:
local start, final, match = str:find("(A+)[^A]*$")
if(start) then
final = start + (#match - 1)
end