为什么lua string.find为这个测试用例返回true?

dot*_*dot 7 string lua

我只是Lua的新手...所以如果我遗漏了一些基本的东西,我会道歉.
我正在运行一个简单的测试,看看我是否可以在字符串中找到某些值.

这是代码:

print(string.find('fd@testca','.') )
Run Code Online (Sandbox Code Playgroud)

而不是失败,这是我期待的,我回来了:

mymachinename:/usr/share/std/test# lua test.lua
1       1
Run Code Online (Sandbox Code Playgroud)

你能告诉我哪里出错了吗?谢谢.

das*_*ght 6

这是因为在Lua中,该find方法查找模式,并.表示任何字符.

您可以使用字符集来解决此问题:

print(string.find('fd@testca','[.]') )
Run Code Online (Sandbox Code Playgroud)

这是一个小型演示链接.

  • 使用'%`作为转义字符更容易,类似于在正则表达式中使用反斜杠:`print(string.find('fd @ testca','%.'))` (2认同)