我一直在試圖看看是否可以找到最後發生的模式,而不是第一次使用string.fing 例如。 :在字符串「AAAAABBB」我想找到最後一個「A」的位置不是第一個。如何使用string.find找到最後一次發生的模式?
這可能嗎?
感謝
我一直在試圖看看是否可以找到最後發生的模式,而不是第一次使用string.fing 例如。 :在字符串「AAAAABBB」我想找到最後一個「A」的位置不是第一個。如何使用string.find找到最後一次發生的模式?
這可能嗎?
感謝
嘗試使用空捕獲:
str = "123456AAA7890AAABBBB"
print(str:match(".*()A"))
如果您需要使用string.find
,試試這個:
local _,p = str:find(".*A")
print(p)
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))
感謝, 啊..相反的是什麼,我腦子裏想但考慮到我正在工作的字符串的長度,我不知道會有多糟糕的表現。 –
我不明白爲什麼需要模式中的「()」。 –
哦,事實並非如此。這是從測試中遺留下來的。 –
謝謝,這是最簡單的一個 –