在 CloudFormation 模板中使用正则表达式 - AWS CloudFormation

在 CloudFormation 模板中使用正则表达式

您可以在 CloudFormation 模板中的多个位置使用正则表达式(通常称为 Regex),例如,在创建模板参数时为 AllowedPattern 属性指定正则表达式。

CloudFormation 中的所有正则表达式符合 Java 正则表达式语法。有关 Java 正则表达式语法及其构造的全面说明,请参阅 java.util.regex.Pattern

如果您使用 JSON 语法编写 CloudFormation 模板,则对于正则表达式中的任何反斜杠字符(\),您必须再添加一个反斜杠进行转义。这是因为 JSON 将反斜杠解释为转义字符,因此您需要对反斜杠进行转义,以确保在正则表达式中将其视为反斜杠字符。

例如,如果要与数字字符匹配的正则表达式包含 \d,则需要在 JSON 模板中将其写为 \\d

在以下示例中,AllowedPattern 属性指定了一个匹配连续四个数字字符(\d{4})的正则表达式。但是,由于正则表达式是在 JSON 模板中定义的,因此需要添加一个额外的反斜杠(\\d)来对反斜杠字符进行转义。

{ "Parameters": { "MyParameter": { "Type": "String", "AllowedPattern": "\\d{4}" } } }

如果您使用 YAML 语法编写 CloudFormation 模板,则必须用单引号('')将正则表达式括起来。不需要额外的转义。

Parameters: MyParameter: Type: String AllowedPattern: '\d{4}'