暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Lua string.find 中的 “坑”

poslua 2016-09-23
947

这是去年首发于我 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论