lua string.find can';“t匹配”/&引用;
Lua string.find找不到“/”,请查看以下代码: c=“~/abc.123” 打印(string.find(c,“/”,-1,true))lua string.find can';“t匹配”/&引用;,lua,find,Lua,Find,Lua string.find找不到“/”,请查看以下代码: c=“~/abc.123” 打印(string.find(c,“/”,-1,true)) 这总是返回“nil”请参阅Lua参考手册。 string.find的第三个参数将决定从何处开始搜索。 输入-1时,将从字符串的最后一个字符开始向前搜索。当然,那样你什么也找不到 对于字符串,正索引给出从字符串开始的位置,负索引给出从字符串结束的位置 使用1从第一个字符开始。然后你会找到你的斜线。或者,您可以使用任何不能用于向左搜索字符串的内容。
这总是返回“nil”请参阅Lua参考手册。
string.find的第三个参数将决定从何处开始搜索。
输入-1
时,将从字符串的最后一个字符开始向前搜索。当然,那样你什么也找不到
对于字符串,正索引给出从字符串开始的位置,负索引给出从字符串结束的位置
使用1从第一个字符开始。然后你会找到你的斜线。或者,您可以使用任何不能用于向左搜索字符串的内容。init
参数仅设置开始向右搜索的位置:
第三个可选数值参数init
指定从何处开始搜索;其默认值为1,可以为负值
以及《负指数手册》中的:
索引允许为负数,并被解释为从字符串末尾向后索引。因此,最后一个字符位于位置-1,依此类推
您需要使用自己的函数,从右侧开始搜索索引:
local function r_find (str, chr)
local bchar = chr:byte(1)
for i = #str, 1, -1 do
if str:byte(i) == bchar then
return i
end
end
end
print(r_find('~/.config/foo/bar', '/')) --> 14
或考虑使用查找最后一节:
print(('~/.config/foo/bar'):match('/([^/]+)$')) --> 'bar'
另一种选择是简单地将字符串拆分为各个部分,并获取最后一部分。要查找最后出现的/
,请使用string.find(s,“.*/”
)。第二个返回值是上次<代码> /< /代码>的位置。 < P> LUA不能做左搜索,考虑先反转字符串:
function Find_Leftwards(s,m,i)
local b,f = s:reverse():find(m, i)
return #s-f, #s-b
end
有人能帮忙解决这个问题吗?
function Find_Leftwards(s,m,i)
local b,f = s:reverse():find(m, i)
return #s-f, #s-b
end