为什么 Lua 字符串查找函数 string.find 对于这个测试用例返回 true?

我对 Lua 还很新,如果我漏掉了一些基础知识,请见谅。

我正在运行一个简单的测试,看看我是否可以在字符串中找到某些值。

以下是代码:

print(string.find('fd@testca','.') )

我预期会失败,但是我却得到了以下输出:

mymachinename:/usr/share/std/test# lua test.lua
1       1

请问我做错了什么?谢谢。

点赞
用户335858
用户335858

这是因为在 Lua 中的 find 方法寻找一个 模式 ,而 . 表示任意字符

你可以使用字符集来解决这个问题:

print(string.find('fd@testca','[.]') )

这里有一个 小 demo 链接

2013-03-07 16:07:00
用户715597
用户715597

Lua使用模式(在这里描述)进行搜索。您可以通过可选的第四个参数关闭模式:

print(string.find('fd@testca','.', 1, true) )

可选的第三个参数(1)是起始位置。

2013-03-07 16:14:26