gpt4 book ai didi

Lua 比较运算符(通配符?)

转载 作者:行者123 更新时间:2023-12-02 00:19:28 33 4
gpt4 key购买 nike

我是 Lua 的新手,所以我现在正在学习运算符部分。在 Lua 中是否有与字符串一起使用的通配符?

我有 PHP 背景,我实际上是在尝试编写以下代码:

--scan the directory's files
for file in lfs.dir(doc_path) do

--> look for any files ending with .jpg
if file is like ".jpg" then
--do something if any files ending with .JPG are scanned
end

end

您会看到我正在寻找 JPG 文件,同时我正在循环浏览目录中的文件。我习惯于使用百分号或星号字符来搜索字符串。但也许 Lua 有不同的方式?

另外,我完全是在猜测这个声明:“如果文件是......”

最佳答案

你想要函数 string.match() , 它测试一个字符串是否匹配 pattern .

这是我重写的示例(未经测试):

--scan the directory's files
for file in lfs.dir(doc_path) do

--> look for any files ending with .jpg
if file:match "%.jpg$" then
--do something if any files ending with .JPG are scanned
end

end

符号file:match "%.jpg%"调用函数 string.match使用方法调用语法糖,这是有效的,因为所有字符串值都有 string默认设置为它们的元表。为了表达简单,我还去掉了唯一参数周围的括号。

模式由 $ 锚定到字符串的末尾最后,并测试文字 .% 引用它.但是,由于模式区分大小写,因此这仅匹配扩展名全部为小写的文件。

要使其不区分大小写,最简单的答案是在测试前通过编写 file:lower:match"%.jpg$" 折叠文件名的大小写。 , 它将调用链接到 string.lower()在调用 match 之前.或者,您可以将模式重写为 "%.[Jj][Pp][Gg]$"在任何一种情况下显式匹配每个字符。

关于Lua 比较运算符(通配符?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11588090/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com