# 사용자 지정 패턴 참조

secret scanning에 대해 정확한 사용자 정의 패턴을 정의하려면 특정 정규식 구문을 사용합니다.

## 사용자 지정 패턴에 대한 정규식 라이브러리

Secret scanning 사용자 지정 패턴은 [Hyperscan 라이브러리](https://github.com/intel/hyperscan) 를 사용하여 정의되며 PCRE 구문의 하위 집합인 Hyperscan regex 구문만 지원합니다. Hyperscan 옵션 한정자는 지원되지 않습니다. Hyperscan 패턴 구성 요소에 대한 자세한 내용은 Hyperscan 문서의 [패턴 지원](https://intel.github.io/hyperscan/dev-reference/compilation.html#pattern-support)을(를) 참조하세요.

## 사용자 지정 패턴을 수동으로 정의하기 위한 구문

UI의 **추가 옵션 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-down" aria-label="chevron-down" role="img"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg>** 섹션은 정규식을 수동으로 작성하는 데 도움이 됩니다.

* **비밀 형식:** 비밀 자체의 형식을 설명하는 표현식입니다.
* **비밀 앞:** 비밀 앞에 오는 문자를 설명하는 표현식입니다. 기본적으로 `\A|[^0-9A-Za-z]`로 설정되며, 이는 비밀이 줄의 시작 부분에 있거나 영숫자가 아닌 문자가 앞에 있어야 함을 의미합니다.
* **비밀 뒤:** 비밀 뒤에 오는 문자를 설명하는 표현식입니다. 기본적으로 `\z|[^0-9A-Za-z]`로 설정되며, 이는 비밀 뒤에 줄 바꿈 문자 또는 영숫자가 아닌 문자가 있어야 함을 의미합니다.
* **추가 일치 요구 사항:** 비밀 자체가 반드시(또는 반드시 아님) 일치해야 하는 선택적 표현식(1개 이상)입니다.

단순 토큰의 경우 일반적으로 비밀 형식만 지정하면 됩니다. 다른 필드는 복잡한 정규식을 만들지 않고도 더 복잡한 비밀을 지정할 수 있도록 유연성을 제공합니다.

### 사용자 지정 패턴 예제

회사에는 5가지 특성이 있는 내부 토큰이 있습니다. 다른 필드를 사용하여 다음과 같이 토큰을 식별하는 방법을 지정합니다.

| **특성** | 
              **필드 및 정규식** |
|----------------|------------------------------|
| 5~10자의 길이 | 비밀 형식: `[$#%@AA-Za-z0-9]{5,10}` |
| `.`로 끝나지 않음 | 비밀 뒤: `[^\.]` |
| 숫자 및 대문자 포함 | 추가 요구 사항: 비밀은 `[A-Z]` 및 `[0-9]`와 일치해야 합니다. |
| 한 행에 둘 이상의 소문자를 포함하지 않음 | 추가 요구 사항: 비밀은 `[a-z]{2,}`와 일치하지 않아야 합니다. |
| `$%@!` 중 하나 포함 | 추가 요구 사항: 비밀은 `[$%@!]`와 일치해야 합니다. |

다음 토큰은 위에서 설명한 사용자 지정 패턴과 일치합니다.

```shell
a9@AAfT!         # Secret string match: a9@AAfT
ee95GG@ZA942@aa  # Secret string match: @ZA942@a
a9@AA!ee9        # Secret string match: a9@AA
```

다음 문자열은 위에서 설명한 사용자 지정 패턴과 일치하지 않습니다.

```shell
a9@AA.!
a@AAAAA
aa9@AA!ee9
aAAAe9
```

## 제한

Secret scanning은(는) 조직 또는 Enterprise 계정당 최대 500개의 사용자 지정 패턴, 그리고 리포지토리당 최대 100개의 사용자 지정 패턴을 지원합니다.