你如何使用 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)
我一直在尝试查看是否可以使用 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)