文件通配符 |
|
hello[a-z]??.*
)与文件名进行匹配。本页介绍了一些在 Lua 中支持此功能的方法。
通配符有多种语法。参见
FindFileFirst
/FindFileNext
Win32 API 函数来实现。)
Windows FindFileFirst
/FindFileNext
API 函数实现的通配符函数可能特别反直觉,有时应避免使用(例如,*.txt
可能会同时匹配 1.txt
和 1.txt~
)。因此,将这些 API 函数封装在 Lua 扩展 DLL 中可能不是最理想的方法。
以下方法将通配符表达式转换为 Lua 模式,然后可以在 Lua 的模式匹配函数中使用。从概念上讲,忽略语法差异,通配符是 Lua 模式的子集,而 Lua 模式是正则表达式的子集。但是,通配符有时会有一些模糊的规则和特殊情况(见上文),具体取决于所选的语法。
源代码:https://gist.github.com/1408288
Posix 规定,兼容系统提供一个 glob 系统调用:参见任何此类手册页,例如 http://linux.die.net/man/3/glob,了解详细信息。
[luaposix] 模块与该库接口。--CharlesStewart?
参见 LuaApr 中的 [apr.fnmatch()] 函数,该函数封装了 APR 的 fnmatch 函数。
另请参见 SciteExtMan 中的 scite_Files。另请注意 [Perl glob]。