Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么lua string.find在此测试用例中返回true?_String_Lua - Fatal编程技术网

为什么lua string.find在此测试用例中返回true?

为什么lua string.find在此测试用例中返回true?,string,lua,String,Lua,我刚刚认识lua。。。如果我遗漏了一些基本的东西,我向你道歉。 我正在运行一个简单的测试,看看是否可以在字符串中找到某些值 代码如下: print(string.find('fd@testca','.') ) 我期待的不是失败,而是回来: mymachinename:/usr/share/std/test# lua test.lua 1 1 你能告诉我哪里出了问题吗? 谢谢 这是因为在Lua中,find方法查找模式,然后 可以使用字符集解决此问题: print(string.fi

我刚刚认识lua。。。如果我遗漏了一些基本的东西,我向你道歉。
我正在运行一个简单的测试,看看是否可以在字符串中找到某些值

代码如下:

print(string.find('fd@testca','.') )
我期待的不是失败,而是回来:

mymachinename:/usr/share/std/test# lua test.lua
1       1
你能告诉我哪里出了问题吗?
谢谢

这是因为在Lua中,
find
方法查找模式,然后

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

print(string.find('fd@testca','[.]') )
下面是一个示例。

Lua使用模式(已描述)进行搜索。可以使用可选的第四个参数关闭图案:

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

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

否,Lua不使用正则表达式;它使用模式(因为实现使用的代码要少得多)。@KeithThompson:对不起,我是从lua用户维基转述的:“使用可选的第四个参数‘plain’关闭正则表达式功能。”,第四个布尔参数允许纯文本搜索。使用
%
作为转义字符更容易,类似于在正则表达式中使用反斜杠:
print(string.find('sfd@testca“,”%。)
@KeithThompson很高兴知道,谢谢!我只是Lua的一个临时用户,所以我对细节的了解非常有限。@KeithThompson我个人认为这是品味的问题。当涉及到像括号这样的转义符号时,我发现
[(]
[)]
%(
%)
可读性要高得多,特别是当它与实际的分组括号交错时。使用character类转义单个字符会创建一个很好的小正方形,在较长的模式中很容易识别,而且它也不会位于字符的“中心”(在
%中)(
实际信息正好位于我看到的中心)-我认为这确实有助于找出匹配的括号等。重复?