我发现这个Lua在answer中由lhf找到了另一个字符串(haystack)中找到最后一个字符串(针)的索引的问题....
function findLast(haystack, needle)
local i=haystack:match(".*"..needle.."()")
if i==nil then return nil else return i-1 end
end
s='my.string.here.'
print(findLast(s,"%."))
print(findLast(s,"e"))
您认为我很高兴能找到我想要的原始问题的答案,但我担心我不仅知道答案有效(而且它确实有用)我试过的所有输入但是为什么它起作用;-)
麻烦的是我找不到任何Lua文档来说明s的行为:匹配在捕获没有定义模式时返回字符串中的索引。
有人能指出我的方向,确认这是定义和预期的行为,而不仅仅是它碰巧工作的巧合吗?
答案 0 :(得分:2)
这是在手册中。关于Patterns
的部分作为特殊情况,空capture()捕获当前字符串位置(数字)。例如,如果我们在字符串“flaaap”上应用模式“()aa()”,则会有两个捕获:3和5.