> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 문자열 분할 함수 문서

# 문자열 분할 함수

export const DeprecatedBadge = () => {
  return <div className="deprecatedBadge">
            <div className="deprecatedIcon">
            <svg width="14" height="10" viewBox="0 0 14 10" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M13 0H1C0.734784 0 0.48043 0.105357 0.292893 0.292893C0.105357 0.48043 0 0.734784 0 1V2.5C0 2.76522 0.105357 3.01957 0.292893 3.20711C0.48043 3.39464 0.734784 3.5 1 3.5V9C1 9.26522 1.10536 9.51957 1.29289 9.70711C1.48043 9.89464 1.73478 10 2 10H12C12.2652 10 12.5196 9.89464 12.7071 9.70711C12.8946 9.51957 13 9.26522 13 9V3.5C13.2652 3.5 13.5196 3.39464 13.7071 3.20711C13.8946 3.01957 14 2.76522 14 2.5V1C14 0.734784 13.8946 0.48043 13.7071 0.292893C13.5196 0.105357 13.2652 0 13 0ZM12 9H2V3.5H12V9ZM13 2.5H1V1H13V2.5ZM5 5.5C5 5.36739 5.05268 5.24021 5.14645 5.14645C5.24021 5.05268 5.36739 5 5.5 5H8.5C8.63261 5 8.75979 5.05268 8.85355 5.14645C8.94732 5.24021 9 5.36739 9 5.5C9 5.63261 8.94732 5.75979 8.85355 5.85355C8.75979 5.94732 8.63261 6 8.5 6H5.5C5.36739 6 5.24021 5.94732 5.14645 5.85355C5.05268 5.75979 5 5.63261 5 5.5Z" fill="currentColor" />
            </svg>
        </div>
            Deprecated feature
        </div>;
};

<Note>
  아래 문서는 `system.functions` 시스템 테이블을 기반으로 생성됩니다.
</Note>

{/*AUTOGENERATED_START*/}

<div id="alphaTokens">
  ## alphaTokens
</div>

v1.1.0에서 도입되었습니다

`a-z` 및 `A-Z` 범위에 속하는 연속된 바이트의 부분 문자열을 선택하고, 선택된 부분 문자열의 배열을 반환합니다.

**구문**

```sql theme={null}
alphaTokens(s[, max_substrings])
```

**별칭**: `splitByAlpha`

**인수**

* `s` — 분할할 문자열입니다. [`String`](/ko/reference/data-types/string)
* `max_substrings` — 선택 사항입니다. `max_substrings > 0`이면 반환되는 부분 문자열의 개수는 `max_substrings`를 초과하지 않으며, 그렇지 않으면 함수는 가능한 한 많은 부분 문자열을 반환합니다. [`Int64`](/ko/reference/data-types/int-uint)

**반환 값**

`s`에서 선택된 부분 문자열의 배열을 반환합니다. [`Array(String)`](/ko/reference/data-types/array)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT alphaTokens('abca1abc');
```

```response title=Response theme={null}
┌─alphaTokens('abca1abc')─┐
│ ['abca','abc']          │
└─────────────────────────┘
```

<div id="arrayStringConcat">
  ## arrayStringConcat
</div>

도입 버전: v1.1.0

배열에 나열된 값의 문자열 표현을, 기본적으로 빈 문자열로 설정된 선택적 매개변수인 지정된 구분자로 연결합니다.

**구문**

```sql theme={null}
arrayStringConcat(arr[, separator])
```

**별칭**: `array_to_string`

**인수**

* `arr` — 이어 붙일 배열입니다. [`Array(T)`](/ko/reference/data-types/array)
* `separator` — 선택 사항입니다. 구분자 문자열입니다. 기본값은 빈 문자열입니다. [`const String`](/ko/reference/data-types/string)

**반환 값**

이어 붙인 문자열을 반환합니다. [`String`](/ko/reference/data-types/string)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT arrayStringConcat(['12/05/2021', '12:50:00'], ' ') AS DateString;
```

```response title=Response theme={null}
┌─DateString──────────┐
│ 12/05/2021 12:50:00 │
└─────────────────────┘
```

<div id="extractAllGroupsVertical">
  ## extractAllGroupsVertical
</div>

도입된 버전: v20.5.0

정규식을 사용해 문자열에서 모든 그룹과 일치하는 항목을 찾고, 배열의 배열을 반환합니다. 각 배열에는 각 그룹의 일치하는 조각이 포함되며, 입력 문자열에 나타난 순서대로 그룹화됩니다.

**구문**

```sql theme={null}
extractAllGroupsVertical(s, regexp)
```

**별칭**: `extractAllGroups`

**인수**

* `s` — 추출 대상 입력 문자열입니다. [`String`](/ko/reference/data-types/string) 또는 [`FixedString`](/ko/reference/data-types/fixedstring)
* `regexp` — 일치시킬 정규식입니다. [`const String`](/ko/reference/data-types/string) 또는 [`const FixedString`](/ko/reference/data-types/fixedstring)

**반환 값**

배열의 배열을 반환합니다. 각 내부 배열에는 하나의 일치 결과에서 캡처된 그룹이 포함됩니다. 각 일치 결과마다 정규식의 캡처 그룹(그룹 1, 그룹 2 등)에 해당하는 요소로 구성된 배열이 생성됩니다. 일치하는 결과가 없으면 빈 배열을 반환합니다. [`Array(Array(String))`](/ko/reference/data-types/array)

**예시**

**사용 예시**

```sql title=Query theme={null}
WITH '< Server: nginx
< Date: Tue, 22 Jan 2019 00:26:14 GMT
< Content-Type: text/html; charset=UTF-8
< Connection: keep-alive
' AS s
SELECT extractAllGroupsVertical(s, '< ([\\w\\-]+): ([^\\r\\n]+)');
```

```response title=Response theme={null}
[['Server','nginx'],['Date','Tue, 22 Jan 2019 00:26:14 GMT'],['Content-Type','text/html; charset=UTF-8'],['Connection','keep-alive']]
```

<div id="ngrams">
  ## ngrams
</div>

도입 버전: v21.11.0

UTF-8 문자열을 길이 `N`의 n-그램으로 분할합니다.

**구문**

```sql theme={null}
ngrams(s, N)
```

**인수**

* `s` — 입력 문자열. [`String`](/ko/reference/data-types/string) 또는 [`FixedString`](/ko/reference/data-types/fixedstring)
* `N` — n-그램의 길이. [`const UInt8/16/32/64`](/ko/reference/data-types/int-uint)

**반환 값**

n-그램으로 이루어진 배열을 반환합니다. [`Array(String)`](/ko/reference/data-types/array)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT ngrams('ClickHouse', 3);
```

```response title=Response theme={null}
['Cli','lic','ick','ckH','kHo','Hou','ous','use']
```

<div id="reverseBySeparator">
  ## reverseBySeparator
</div>

도입 버전: v26.2.0

지정한 구분자로 나뉜 문자열에서 하위 문자열의 순서를 뒤집습니다.
이 함수는 문자열을 구분자로 분할한 뒤, 결과 파트의 순서를 반대로 바꾸고
같은 구분자를 사용해 다시 결합합니다. 도메인 이름,
파일 경로 또는 구성 요소의 순서를 반대로 바꿔야 하는 기타 계층형 데이터를 파싱할 때 유용합니다.

예시:

* reverseBySeparator('[www.google.com')는](http://www.google.com'\)는) 'com.google.www'를 반환합니다
* reverseBySeparator('a/b/c', '/')는 'c/b/a'를 반환합니다
* reverseBySeparator('x::y::z', '::')는 'z::y::x'를 반환합니다

**구문**

```sql theme={null}
reverseBySeparator(string[, separator])
```

**인수**

* `string` — 각 부분의 순서를 뒤집을 입력 문자열입니다. [`String`](/ko/reference/data-types/string)
* `separator` — 부분을 식별하는 데 사용하는 구분자 문자열입니다. 지정하지 않으면 '.' (점)을 사용합니다. 기본값: '.' [`String`](/ko/reference/data-types/string)

**반환 값**

원래 문자열의 부분 문자열을 오른쪽에서 왼쪽 순서로 재배열하고, 동일한 구분자로 연결한 문자열을 반환합니다. [`String`](/ko/reference/data-types/string)

**예시**

**기본 도메인 역순 변환**

```sql title=Query theme={null}
SELECT reverseBySeparator('www.google.com')
```

```response title=Response theme={null}
'com.google.www'
```

**경로 뒤집기**

```sql title=Query theme={null}
SELECT reverseBySeparator('a/b/c', '/')
```

```response title=Response theme={null}
'c/b/a'
```

**사용자 정의 구분자**

```sql title=Query theme={null}
SELECT reverseBySeparator('x::y::z', '::')
```

```response title=Response theme={null}
'z::y::x'
```

**점(.)이 포함된 경우의 예외**

```sql title=Query theme={null}
SELECT reverseBySeparator('.a.b.', '.')
```

```response title=Response theme={null}
'.b.a.'
```

**단일 항목**

```sql title=Query theme={null}
SELECT reverseBySeparator('single')
```

```response title=Response theme={null}
'single'
```

**빈 구분 기호**

```sql title=Query theme={null}
SELECT reverseBySeparator('abcde', '')
```

```response title=Response theme={null}
'edcba'
```

<div id="splitByChar">
  ## splitByChar
</div>

도입 버전: v1.1.0

정확히 한 문자로 이루어진 지정된 상수 문자열 `separator`를 구분자로 사용해 문자열을 부분 문자열의 배열로 분할합니다.
구분자가 문자열의 시작이나 끝에 있거나, 구분자가 여러 번 연속해서 나타나면 빈 부분 문자열이 생길 수 있습니다.

<Note>
  설정 [`splitby_max_substrings_includes_remaining_string`](/ko/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (기본값: `0`)은 인수 `max_substrings > 0`일 때 남은 문자열을 결과 배열의 마지막 요소에 포함할지 여부를 제어합니다.
</Note>

다음과 같은 경우 빈 부분 문자열이 생길 수 있습니다.

* 구분자가 문자열의 시작이나 끝에 있는 경우
* 구분자가 여러 번 연속해서 나타나는 경우
* 원본 문자열 `s`가 비어 있는 경우

**구문**

```sql theme={null}
splitByChar(separator, s[, max_substrings])
```

**인수**

* `separator` — 구분자는 1바이트 문자여야 합니다. [`String`](/ko/reference/data-types/string)
* `s` — 분할할 문자열입니다. [`String`](/ko/reference/data-types/string)
* `max_substrings` — 선택 사항입니다. `max_substrings > 0`이면 반환되는 배열에는 최대 `max_substrings`개의 부분 문자열이 포함됩니다. 그렇지 않으면 함수는 가능한 한 많은 부분 문자열을 반환합니다. 기본값은 `0`입니다. [`Int64`](/ko/reference/data-types/int-uint)

**반환 값**

선택된 부분 문자열로 이루어진 배열을 반환합니다. [`Array(String)`](/ko/reference/data-types/array)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT splitByChar(',', '1,2,3,abcde');
```

```response title=Response theme={null}
┌─splitByChar(⋯2,3,abcde')─┐
│ ['1','2','3','abcde']    │
└──────────────────────────┘
```

<div id="splitByNonAlpha">
  ## splitByNonAlpha
</div>

v21.9.0에 도입됨

공백 문자와 문장 부호로 구분된 문자열을 부분 문자열 배열로 분할합니다.

<Note>
  설정 [`splitby_max_substrings_includes_remaining_string`](/ko/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (기본값: `0`)은 인수 `max_substrings > 0`인 경우 남은 문자열을 결과 배열의 마지막 요소에 포함할지 여부를 제어합니다.
</Note>

**구문**

```sql theme={null}
splitByNonAlpha(s[, max_substrings])
```

**인수**

* `s` — 분리할 문자열입니다. [`String`](/ko/reference/data-types/string)
* `max_substrings` — 선택 사항입니다. `max_substrings > 0`이면 반환되는 부분 문자열은 최대 `max_substrings`개이며, 그렇지 않으면 함수는 가능한 한 많은 부분 문자열을 반환합니다. 기본값은 `0`입니다. [`Int64`](/ko/reference/data-types/int-uint)

**반환 값**

`s`에서 선택된 부분 문자열의 배열을 반환합니다. [`Array(String)`](/ko/reference/data-types/array)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT splitByNonAlpha('user@domain.com');
```

```response title=Response theme={null}
['user','domain','com']
```

<div id="splitByRegexp">
  ## splitByRegexp
</div>

도입 버전: v21.6.0

주어진 정규식으로 구분된 문자열을 부분 문자열의 배열로 분할합니다.
주어진 정규식이 비어 있으면 문자열을 단일 문자 배열로 분할합니다.
정규식과 일치하는 항목을 찾지 못하면 문자열은 분할되지 않습니다.

다음과 같은 경우 빈 부분 문자열이 생성될 수 있습니다.

* 비어 있지 않은 정규식 일치가 문자열의 시작 또는 끝에서 발생하는 경우
* 비어 있지 않은 정규식 일치가 여러 번 연속으로 발생하는 경우
* 정규식은 비어 있지 않지만 원래 문자열이 비어 있는 경우

<Note>
  설정 [`splitby_max_substrings_includes_remaining_string`](/ko/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (기본값: `0`)은 인수 `max_substrings > 0`일 때 결과 배열의 마지막 요소에 남은 문자열을 포함할지 여부를 제어합니다.
</Note>

**구문**

```sql theme={null}
splitByRegexp(regexp, s[, max_substrings])
```

**인수**

* `regexp` — 정규식입니다. 상수여야 합니다. [`String`](/ko/reference/data-types/string) 또는 [`FixedString`](/ko/reference/data-types/fixedstring)
* `s` — 분할할 문자열입니다. [`String`](/ko/reference/data-types/string)
* `max_substrings` — 선택 사항입니다. `max_substrings > 0`이면 반환되는 부분 문자열 수는 `max_substrings`를 초과하지 않습니다. 그렇지 않으면 함수는 가능한 한 많은 부분 문자열을 반환합니다. 기본값: `0`. [`Int64`](/ko/reference/data-types/int-uint)

**반환 값**

`s`에서 선택된 부분 문자열로 이루어진 배열을 반환합니다. [`Array(String)`](/ko/reference/data-types/array)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT splitByRegexp('\\d+', 'a12bc23de345f');
```

```response title=Response theme={null}
┌─splitByRegex⋯c23de345f')─┐
│ ['a12bc23de345f']        │
└──────────────────────────┘
```

**빈 정규식**

```sql title=Query theme={null}
SELECT splitByRegexp('', 'abcde');
```

```response title=Response theme={null}
┌─splitByRegexp('', 'abcde')─┐
│ ['a','b','c','d','e']      │
└────────────────────────────┘
```

<div id="splitByString">
  ## splitByString
</div>

도입 버전: v1.1.0

여러 문자로 이루어진 상수 `separator`를 사용해 문자열을 부분 문자열의 배열로 분할합니다.
문자열 `separator`가 비어 있으면 문자열 `s`를 단일 문자 배열로 분할합니다.

다음과 같은 경우에는 빈 부분 문자열이 생성될 수 있습니다.

* 비어 있지 않은 구분자가 문자열의 시작 또는 끝에 있는 경우
* 비어 있지 않은 구분자가 여러 번 연속해서 나타나는 경우
* 구분자는 비어 있지 않지만 원래 문자열 `s`는 비어 있는 경우

<Note>
  [`splitby_max_substrings_includes_remaining_string`](/ko/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) 설정(기본값: `0`)은 인수 `max_substrings > 0`일 때 남은 문자열을 결과 배열의 마지막 요소에 포함할지 여부를 제어합니다.
</Note>

**구문**

```sql theme={null}
splitByString(separator, s[, max_substrings])
```

**인수**

* `separator` — 구분자입니다. [`String`](/ko/reference/data-types/string)
* `s` — 분할할 문자열입니다. [`String`](/ko/reference/data-types/string)
* `max_substrings` — 선택 사항입니다. `max_substrings > 0`이면 반환되는 부분 문자열 수는 `max_substrings`를 넘지 않으며, 그렇지 않으면 함수는 가능한 한 많은 부분 문자열을 반환합니다. 기본값: `0`. [`Int64`](/ko/reference/data-types/int-uint)

**반환 값**

`s`에서 분할된 부분 문자열의 배열을 반환합니다. [`Array(String)`](/ko/reference/data-types/array)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT splitByString(', ', '1, 2 3, 4,5, abcde');
```

```response title=Response theme={null}
┌─splitByStrin⋯4,5, abcde')─┐
│ ['1','2 3','4,5','abcde'] │
└───────────────────────────┘
```

**비어 있는 구분자**

```sql title=Query theme={null}
SELECT splitByString('', 'abcde');
```

```response title=Response theme={null}
┌─splitByString('', 'abcde')─┐
│ ['a','b','c','d','e']      │
└────────────────────────────┘
```

<div id="splitByWhitespace">
  ## splitByWhitespace
</div>

도입 버전: v21.9.0

공백 문자로 구분된 문자열을 부분 문자열의 배열로 나눕니다.

<Note>
  설정 [`splitby_max_substrings_includes_remaining_string`](/ko/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (기본값: `0`)은 인수 `max_substrings > 0`일 때 남은 문자열을 결과 배열의 마지막 요소에 포함할지 여부를 결정합니다.
</Note>

**구문**

```sql theme={null}
splitByWhitespace(s[, max_substrings])
```

**인수**

* `s` — 분할할 문자열입니다. [`String`](/ko/reference/data-types/string)
* `max_substrings` — 선택 사항입니다. `max_substrings > 0`이면 반환되는 부분 문자열 수는 `max_substrings`를 초과하지 않습니다. 그렇지 않으면 함수는 가능한 한 많은 부분 문자열을 반환합니다. 기본값은 `0`입니다. [`Int64`](/ko/reference/data-types/int-uint)

**반환 값**

`s`에서 선택된 부분 문자열의 배열을 반환합니다. [`Array(String)`](/ko/reference/data-types/array)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT splitByWhitespace('  1!  a,  b.  ');
```

```response title=Response theme={null}
['1!','a,','b.']
```

<div id="tokens">
  ## tokens
</div>

도입 버전: v21.11.0

지정된 토크나이저를 사용해 문자열을 토큰으로 분할합니다.

사용 가능한 토크나이저:

* `splitByNonAlpha`는 ASCII 영숫자가 아닌 문자를 기준으로 문자열을 분할합니다(함수 [splitByNonAlpha](/ko/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha)도 참조하십시오).
* `splitByString(S)`는 사용자 정의 구분자 문자열 `S`를 기준으로 문자열을 분할합니다(함수 [splitByString](/ko/reference/functions/regular-functions/splitting-merging-functions#splitByString)도 참조하십시오). 구분자는 선택적 매개변수로 지정할 수 있습니다. 예: `tokens(value, 'splitByString', [', ', '; ', '\n', '\\'])`. 각 문자열은 여러 문자로 이루어질 수 있습니다(예시의 `', '`). 명시적으로 지정하지 않으면 기본 구분자 목록은 공백 하나인 `[' ']`입니다.
* `asciiCJK`는 유니코드 단어 경계 규칙(UAX #29와 유사)을 사용해 문자열을 토큰으로 분할합니다. ASCII 영숫자와 밑줄 문자는 연결자와 함께 토큰을 형성합니다(문자의 경우 `:`, 같은 유형의 문자의 경우 `.` 및 `'`). ASCII가 아닌 유니코드 문자는 한 글자 토큰이 됩니다.
* `ngrams(N)`는 문자열을 동일한 길이의 `N`-그램으로 분할합니다(함수 [ngrams](/ko/reference/functions/regular-functions/splitting-merging-functions#ngrams)도 참조하십시오). ngram 길이는 1\~8 사이의 선택적 정수 매개변수로 지정할 수 있습니다. 예: `tokens(value, 'ngrams', 3)`. 명시적으로 지정하지 않으면 기본 ngram 크기는 3입니다.
* `sparseGrams(min_length, max_length, min_cutoff_length)`는 문자열을 최소 `min_length`, 최대 `max_length`(포함) 길이의 가변 길이 n-그램으로 분할합니다(함수 [sparseGrams](/ko/reference/functions/regular-functions/string-functions#sparseGrams)도 참조하십시오). 명시적으로 지정하지 않으면 `min_length`와 `max_length`의 기본값은 각각 3과 100입니다. `min_cutoff_length` 매개변수를 제공하면 길이가 `min_cutoff_length` 이상인 n-그램만 반환됩니다. `ngrams(N)`와 비교하면 `sparseGrams` 토크나이저는 가변 길이 N-그램을 생성하므로 원본 텍스트를 더 유연하게 표현할 수 있습니다. 예를 들어 `tokens(value, 'sparseGrams', 3, 5, 4)`는 내부적으로 입력 문자열에서 3-, 4-, 5-그램을 생성하지만, 4-그램과 5-그램만 반환합니다.
* `array`는 토큰화를 수행하지 않습니다. 즉, 각 행의 값 자체가 하나의 토큰입니다(함수 [array](/ko/reference/functions/regular-functions/array-functions#array)도 참조하십시오).

`splitByString` 토크나이저의 경우, 토큰들이 [접두 코드](https://en.wikipedia.org/wiki/Prefix_code)를 이루지 않으면 일반적으로 더 긴 구분자가 먼저 매칭되도록 하는 것이 좋습니다.
이를 위해 구분자를 길이 내림차순으로 전달하십시오.
예를 들어 구분자 = `['%21', '%']`이면 문자열 `%21abc`는 `['abc']`로 토큰화되지만, 구분자 = `['%', '%21']`이면 `['21ac']`로 토큰화됩니다(이는 일반적으로 의도한 결과가 아닙니다).

**구문**

```sql theme={null}
tokens(value) -- 'splitByNonAlpha' 토크나이저
tokens(value, 'splitByNonAlpha')
tokens(value, 'splitByString'[, separators])
tokens(value, 'asciiCJK')
tokens(value, 'ngrams'[, n])
tokens(value, 'sparseGrams'[, min_length, max_length[, min_cutoff_length]])
tokens(value, 'array')
```

**인수**

* `value` — 입력 문자열입니다. [`String`](/ko/reference/data-types/string) 또는 [`FixedString`](/ko/reference/data-types/fixedstring)
* `tokenizer` — 사용할 토크나이저입니다. 유효한 인수는 `splitByNonAlpha`, `splitByString`, `asciiCJK`, `ngrams`, `sparseGrams`, `array`입니다. 선택 사항이며, 명시적으로 설정하지 않으면 기본값은 `splitByNonAlpha`입니다. [`const String`](/ko/reference/data-types/string)
* `n` — 인수 `tokenizer`가 `ngrams`인 경우에만 적용됩니다. ngram의 길이를 지정하는 선택적 매개변수입니다. 명시적으로 설정하지 않으면 기본값은 `3`입니다. [`const UInt8`](/ko/reference/data-types/int-uint)
* `separators` — 인수 `tokenizer`가 `split`인 경우에만 적용됩니다. 구분자 문자열을 지정하는 선택적 매개변수입니다. 명시적으로 설정하지 않으면 기본값은 `[' ']`입니다. [`const Array(String)`](/ko/reference/data-types/array)
* `min_length` — 인수 `tokenizer`가 `sparseGrams`인 경우에만 적용됩니다. 최소 gram 길이를 지정하는 선택적 매개변수이며, 기본값은 3입니다. [`const UInt8`](/ko/reference/data-types/int-uint)
* `max_length` — 인수 `tokenizer`가 `sparseGrams`인 경우에만 적용됩니다. 최대 gram 길이를 지정하는 선택적 매개변수이며, 기본값은 100입니다. [`const UInt8`](/ko/reference/data-types/int-uint)
* `min_cutoff_length` — 인수 `tokenizer`가 `sparseGrams`인 경우에만 적용됩니다. 최소 cutoff 길이를 지정하는 선택적 매개변수입니다. [`const UInt8`](/ko/reference/data-types/int-uint)

**반환 값**

입력 문자열에서 생성된 토큰 배열을 반환합니다. [`Array`](/ko/reference/data-types/array)

**예시**

**기본 토크나이저**

```sql title=Query theme={null}
SELECT tokens('test1,;\\\\ test2,;\\\\ test3,;\\\\   test4') AS tokens;
```

```response title=Response theme={null}
['test1','test2','test3','test4']
```

**Ngram 토크나이저**

```sql title=Query theme={null}
SELECT tokens('abc def', 'ngrams', 3) AS tokens;
```

```response title=Response theme={null}
['abc','bc ','c d',' de','def']
```

<div id="tokensForLikePattern">
  ## tokensForLikePattern
</div>

Introduced in: v26.3.0

지정된 토크나이저를 사용해 LIKE 패턴 문자열을 토큰으로 분할합니다.

`tokens` 함수와 달리 이 함수는 LIKE 패턴의 의미를 이해하며
(예: 앞이나 뒤에 오는 와일드카드 문자), 패턴 매칭에 의미 있는
토큰을 추출하기 위해 토크나이저별 규칙을 적용합니다.

이 함수는 `tokens` 함수와 동일한 인수 집합을 지원합니다. `tokenizer`
뒤에 오는 추가 인수는 선택한 토크나이저에 따라 해석됩니다
(예: `ngrams`의 `n`, `splitByString`의 `separators`,
`sparseGrams`의 `min_length` / `max_length` \[/ `min_cutoff_length`]).

이 함수는 주로 디버깅 및 테스트 용도로 사용되며,
내부적으로 LIKE 패턴의 토큰화 동작을 분석하는 데 활용됩니다.

**구문**

```sql theme={null}
tokensForLikePattern(value[, tokenizer[, tokenizer_specific_arguments...]])
```

**인수**

* `value` — 입력 문자열입니다. [`String`](/ko/reference/data-types/string) 또는 [`FixedString`](/ko/reference/data-types/fixedstring)
* `tokenizer` — 사용할 토크나이저입니다. 유효한 인수는 `splitByNonAlpha`, `splitByString`, `asciiCJK`, `ngrams`, `sparseGrams`, `array`입니다. 선택 사항이며, 명시적으로 설정하지 않으면 기본값은 `splitByNonAlpha`입니다. [`const String`](/ko/reference/data-types/string)
* `n` — 인수 `tokenizer`가 `ngrams`인 경우에만 사용됩니다. ngrams의 길이를 지정하는 선택적 매개변수입니다. 명시적으로 설정하지 않으면 기본값은 `3`입니다. [`const UInt8`](/ko/reference/data-types/int-uint)
* `separators` — 인수 `tokenizer`가 `split`인 경우에만 사용됩니다. 구분자 문자열을 지정하는 선택적 매개변수입니다. 명시적으로 설정하지 않으면 기본값은 `[' ']`입니다. [`const Array(String)`](/ko/reference/data-types/array)
* `min_length` — 인수 `tokenizer`가 `sparseGrams`인 경우에만 사용됩니다. 최소 gram 길이를 지정하는 선택적 매개변수이며, 기본값은 3입니다. [`const UInt8`](/ko/reference/data-types/int-uint)
* `max_length` — 인수 `tokenizer`가 `sparseGrams`인 경우에만 사용됩니다. 최대 gram 길이를 지정하는 선택적 매개변수이며, 기본값은 100입니다. [`const UInt8`](/ko/reference/data-types/int-uint)
* `min_cutoff_length` — 인수 `tokenizer`가 `sparseGrams`인 경우에만 사용됩니다. 최소 cutoff 길이를 지정하는 선택적 매개변수입니다. [`const UInt8`](/ko/reference/data-types/int-uint)

**반환 값**

입력 문자열에서 생성된 토큰의 결과 배열을 반환합니다. [`Array`](/ko/reference/data-types/array)

**예시**

**기본 토크나이저**

```sql title=Query theme={null}
SELECT tokensForLikePattern('%test1,test2,test3%') AS tokens;
```

```response title=Response theme={null}
['test2']
```
