當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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 \\ [])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。