Lua中的string.find函数功能

以下是我的代码

str = "abc@hotmailcom"
a = string.find(str , "@")
print(a)

我的输出结果是4,即"@"的索引值。

但是当我运行以下代码时

str = "abc@hotmailcom"
a = string.find(str , ".")
print(a)

程序返回值为1,而不是输出"nil"。

我刚开始学习Lua语言,有人可以解释一下发生的事情以及string.find()在Lua中的工作原理吗?

点赞
用户10126088
用户10126088

. 是 lua 模式中所有字符的字符类,你需要用 % 转义它。 参见 Lua 模式

> print(string.find("abc@hotmailcom", "."))
1       1
> print(string.find("abc@hotmailcom", "%."))
nil
2019-12-12 12:17:06