

# CloudFormation 템플릿에서 정규식 사용
<a name="cfn-regexes"></a>

템플릿 [파라미터](parameters-section-structure.md)를 생성할 때 `AllowedPattern` 속성의 경우와 같이 CloudFormation 템플릿 내의 수많은 장소에서 정규식(일반적으로 regex라고 함)을 사용할 수 있습니다.

CloudFormation의 정규식은 Java regex 구문을 따릅니다. Java regex 구문과 그 구조에 대한 포괄적인 설명은 [java.util.regex.Pattern](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/regex/Pattern.html)을 참조하세요.

CloudFormation 템플릿을 JSON 구문으로 작성하는 경우 백슬래시를 추가하여 정규 표현식에서 백슬래시 문자(\$1)를 이스케이프해야 합니다. 이는 JSON이 백슬래시를 이스케이프 문자로 해석하기 때문이며, 정규식에서 백슬래시를 리터럴 백슬래시로 처리하려면 이스케이프해야 합니다.

예를 들어, 숫자 문자를 일치시키기 위해 정규식에 `\d`를 포함시키는 경우 JSON 템플릿에서는 `\\d`로 작성해야 합니다.

다음 예제에서 `AllowedPattern` 속성은 4자리 연속 문자(`\d{4}`)와 일치하는 정규식을 지정합니다. 하지만 정규식은 JSON 템플릿에 정의되어 있으므로 추가 백슬래시(`\\d`)로 백슬래시 문자를 이스케이프해야 합니다.

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

CloudFormation 템플릿을 YAML 구문으로 작성하는 경우 정규식을 작은따옴표(“)로 묶어야 합니다. 추가 이스케이프는 필요하지 않습니다.

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

**참고**  
CloudFormation의 정규식은 `AllowedPattern`과 같은 특정 컨텍스트에서 검증 목적으로만 지원됩니다. 패턴 일치가 아닌 정확한 문자열 비교만 수행하는 `Fn::Equals`와 같은 CloudFormation 내장 함수에서는 패턴 일치 작업으로 지원되지 않습니다.