这是去年首发于我 blog 的一篇老文,现做了下精简,搬到这里
先来看段用例:
local path = "/lua-lib/?.lua"
print(string.find(path, "/lua-lib/?.lua"))

什么鬼?为什么会是 nil
?
万能的 SO 总是能找到解释:
string.find(), by default, does not find strings in strings, it finds patterns in strings. str:find(pattern, init, plain) which allows you to pass in true as a last argument and search for plain strings.
原来 string.find
是当做 pattern
来查找的。修改一下,继续测试:
local path = "/lua-lib/?.lua"
print(string.find(path, "/lua-lib/?.lua", 1, true))

Bingo ! 终于看到预期效果了。如果你也不确定 find
的字符串会不会包含元字符,靠谱的方式,还是加个 true
参数比较好!
公号要暂缓更新一段时间了,要将精力投入到 go 了。。。
文章转载自poslua,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




