

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用语法中的 glob 模式
<a name="syntax-glob"></a>

在指定管道构件或源位置中使用的文件或路径时，可以根据操作类型指定构件。例如，对于 S3 操作，您可以指定 S3 对象键。

对于触发器，您可以指定筛选条件。您可以使用 glob 模式来指定筛选条件。示例如下。

当语法为“glob”时，使用有限的模式语言将路径的字符串表示与类似于正则表达式的语法匹配起来。例如：
+  `*.java` 指定表示以 .java 结尾的代表文件名的路径
+ ` *.*` 指定包含圆点的文件名
+  `*.{java,class}` 指定以 .java 或 .class 结尾的文件名
+  `foo.?` 指定以 foo. 开头并有单字符扩展名的文件名

以下规则用于解释 glob 模式：
+ 要在目录边界中指定名称组分的零个或多个字符，请使用 `*`。
+  要跨目录边界指定名称组分的零个或多个字符，请使用 `**`。
+ 要指定名称组分的一个字符，请使用 `?`。
+ 要对可解释为特殊字符的字符进行转义，请使用反斜杠字符 (`\`)。
+ 要指定一组字符中的单个字符，请使用 `[ ]`。
+ 要指定位于构建位置或源存储库位置根目录中的单个文件，请使用 `my-file.jar`。
+ 要在子目录中指定单个文件，请使用 `directory/my-file.jar` 或 `directory/subdirectory/my-file.jar`。
+ 要指定所有文件，请使用 `"**"`。`**` glob 模式表示匹配任意数量的子目录。
+ 要指定名为 `directory` 的目录中的所有文件和目录，请使用 `"directory/**"`。`**` glob 模式表示匹配任意数量的子目录。
+ 要指定名为 `directory` 的目录中的所有文件，而非其任意子目录，请使用 `"directory/*"`。
+  在方括号表达式内，`*`、`?` 和 `\` 字符与自身匹配。如果连字符 (-) 是方括号内的第一个字符，或者如果它在您否定时是 `!` 之后的第一个字符，则它与自身匹配。
+  `{ }` 字符是一组子模式，如果组中的任何子模式匹配，则组也匹配。`","` 字符用于分隔子模式。不能对组进行嵌套。