为什么lua的string.find返回错误的数字

local num = string.find("我希望这个能工作 --", "--")
return num

所以这段代码应该返回21,但实际上返回了1

我做错了什么?

点赞
用户3574628
用户3574628

在 Lua 模式中,- 是一个特殊字符。为了进行字面匹配,在 string.find 的第二个参数中需要使用 '%-%-'

或者,如果您不想处理模式语义,可以将第四个参数设置为 true,告诉 string.find 将第二个参数作为字面字符串而不是模式进行匹配:

string.find("i want this to work --", "--", 1, true)
2020-03-31 14:11:11