当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Path.wildcard用法及代码示例


Elixir语言中 Path.wildcard 相关用法介绍如下。

用法:

wildcard(glob, opts \\ [])
@spec wildcard(
  t(),
  keyword()
) :: [binary()]

根据给定的glob 表达式遍历路径并返回匹配列表。

通配符看起来像一个普通的路径,除了以下 "wildcard characters" 以特殊方式解释:

  • ? - 匹配一个字符。

  • * - 匹配直到文件名末尾、下一个点或下一个斜杠的任意数量的字符。

  • ** - 两个相邻的 * 用作单个模式将匹配所有文件以及零个或多个目录和子目录。

  • [char1,char2,...] - 匹配任何列出的字符;用连字符分隔的两个字符将匹配一系列字符。不要在逗号前后添加空格,因为它会匹配包含空格字符本身的路径。

  • {item1,item2,...} - 匹配备选方案之一。不要在逗号前后添加空格,因为它会匹配包含空格字符本身的路径。

其他角色代表他们自己。只有在相同位置具有完全相同字符的路径才会匹配。请注意,匹配区分大小写: "a" 将不匹配 "A"

目录分隔符必须始终写为 / ,即使在 Windows 上也是如此。在调用此函数之前,您可以调用 Path.expand/1 来规范化路径。

默认情况下,模式 *? 不匹配以点 . 开头的文件。请参阅下面 "Options" 部分中的 :match_dot 选项。

选项

  • :match_dot - (布尔值)如果 false ,特殊通配符 *? 将不匹配以点开头的文件( . )。如果 true ,以 . 开头的文件将不会被特殊处理。默认为 false

例子

假设您有一个名为 projects 的目录,其中包含三个 Elixir 项目:elixirex_docplug。您可以在每个项目的ebin 目录中找到所有.beam 文件,如下所示:

Path.wildcard("projects/*/ebin/**/*.beam")

如果你想同时搜索 .beam.app 文件,你可以这样做:

Path.wildcard("projects/*/ebin/**/*.{beam,app}")

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Path.wildcard(glob, opts \\ [])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。