

# Usar expressões regulares em modelos do CloudFormation
<a name="cfn-regexes"></a>

É possível usar expressões regulares (conhecidas como regexes) em vários lugares dentro de um modelo do CloudFormation, como para a propriedade `AllowedPattern` ao criar o [parâmetro](parameters-section-structure.md) de um modelo.

Todas as expressões regulares no CloudFormation estão em conformidade com a sintaxe regex de Java. Consulte uma descrição abrangente da sintaxe regex do Java e de seus constructos em [java.util.regex.Pattern](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/regex/Pattern.html).

Se escrever o modelo do CloudFormation na sintaxe JSON, você deverá escapar qualquer caractere de barra invertida (\$1) na expressão regular adicionando uma barra invertida adicional. Isso porque o JSON interpreta barras invertidas como caracteres de escape, e você precisa escapá-las para garantir que elas sejam tratadas como barras invertidas literais na expressão regular.

Por exemplo, se você incluir `\d` em sua expressão regular para corresponder a um caractere de dígito, você precisará escrevê-lo como `\\d` em seu modelo JSON.

No exemplo a seguir, a propriedade `AllowedPattern` especifica uma expressão regular que corresponde a quatro caracteres de dígitos consecutivos (`\d{4}`). No entanto, como a expressão regular é definida em um modelo JSON, o caractere de barra invertida precisa ser escapado com uma barra invertida adicional (`\\d`).

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

Se escrever o modelo do CloudFormation na sintaxe YAML, você deverá colocar a expressão regular entre aspas simples (‘’). Nenhum escape adicional é necessário.

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

**nota**  
Expressões regulares no CloudFormation só são aceitas para fins de validação em contextos específicos, como `AllowedPattern`. Elas não são aceitas como operações de correspondência de padrões nas funções intrínsecas do CloudFormation, como `Fn::Equals`, que realizam somente a comparação exata de strings, e não a correspondência de padrões.