> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.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` system table から生成されています。
</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`](/ja/reference/data-types/string)
* `max_substrings` — 任意。`max_substrings > 0` の場合、返される部分文字列の数は `max_substrings` 以下になります。それ以外の場合、この関数は可能な限り多くの部分文字列を返します。[`Int64`](/ja/reference/data-types/int-uint)

**戻り値**

`s` から抽出された部分文字列の配列を返します。[`Array(String)`](/ja/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)`](/ja/reference/data-types/array)
* `separator` — 省略可能。区切り文字列。デフォルトは空文字列です。[`const String`](/ja/reference/data-types/string)

**戻り値**

連結後の文字列を返します。[`String`](/ja/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`](/ja/reference/data-types/string) または [`FixedString`](/ja/reference/data-types/fixedstring)
* `regexp` — マッチに使用する正規表現。[`const String`](/ja/reference/data-types/string) または [`const FixedString`](/ja/reference/data-types/fixedstring)

**戻り値**

配列の配列を返します。各内側の配列には、1 回のマッチでキャプチャされたグループが含まれます。各マッチごとに、正規表現内のキャプチャグループ (グループ 1、グループ 2 など) に対応する要素を持つ配列が生成されます。マッチが見つからない場合は、空の配列を返します。[`Array(Array(String))`](/ja/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-gram に分割します。

**構文**

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

**引数**

* `s` — 入力文字列。[`String`](/ja/reference/data-types/string) または [`FixedString`](/ja/reference/data-types/fixedstring)
* `N` — N-gram の長さ。[`const UInt8/16/32/64`](/ja/reference/data-types/int-uint)

**戻り値**

N-gram の配列を返します。[`Array(String)`](/ja/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`](/ja/reference/data-types/string)
* `separator` — 各部分の識別に使用する区切り文字列。指定しない場合は '.' (ドット) を使用します。デフォルト: '.' [`String`](/ja/reference/data-types/string)

**戻り値**

元の文字列の部分文字列を右から左へ並べ替え、同じ区切り文字で連結した文字列を返します。[`String`](/ja/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

指定したちょうど 1 文字の定数文字列 `separator` で文字列を分割し、部分文字列の配列を返します。
区切り文字が文字列の先頭または末尾にある場合や、区切り文字が連続して複数出現する場合は、空の部分文字列が生成されることがあります。

<Note>
  設定 [`splitby_max_substrings_includes_remaining_string`](/ja/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`](/ja/reference/data-types/string)
* `s` — 分割対象の文字列です。[`String`](/ja/reference/data-types/string)
* `max_substrings` — 任意です。`max_substrings > 0` の場合、返される配列に含まれる部分文字列は最大 `max_substrings` 個です。それ以外の場合、関数は可能な限り多くの部分文字列を返します。デフォルト値は `0` です。[`Int64`](/ja/reference/data-types/int-uint)

**戻り値**

選択された部分文字列の配列を返します。[`Array(String)`](/ja/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`](/ja/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (デフォルト: `0`) は、引数 `max_substrings > 0` の場合に、残りの文字列を結果配列の最後の要素に含めるかどうかを制御します。
</Note>

**構文**

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

**引数**

* `s` — 分割対象の文字列。[`String`](/ja/reference/data-types/string)
* `max_substrings` — 省略可。`max_substrings > 0` の場合、返される部分文字列の数は `max_substrings` 個以下になります。それ以外の場合、この関数は可能な限り多くの部分文字列を返します。デフォルト値: `0`。[`Int64`](/ja/reference/data-types/int-uint)

**戻り値**

`s` から抽出された部分文字列の配列を返します。[`Array(String)`](/ja/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

指定された正規表現で区切られた文字列を、部分文字列の配列に分割します。
指定された正規表現が空の場合、文字列は1文字ごとの配列に分割されます。
正規表現に一致する箇所が見つからない場合、文字列は分割されません。

次の場合、空の部分文字列が選択されることがあります。

* 空でない正規表現の一致が文字列の先頭または末尾にある場合
* 空でない正規表現の一致が連続して複数回発生する場合
* 正規表現が空でなく、元の文字列 string が空の場合。

<Note>
  設定 [`splitby_max_substrings_includes_remaining_string`](/ja/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`](/ja/reference/data-types/string) または [`FixedString`](/ja/reference/data-types/fixedstring)
* `s` — 分割対象の文字列。[`String`](/ja/reference/data-types/string)
* `max_substrings` — 任意。`max_substrings > 0` の場合、返される部分文字列の数は最大で `max_substrings` になります。それ以外の場合、この関数は可能な限り多くの部分文字列を返します。デフォルト値: `0`。[`Int64`](/ja/reference/data-types/int-uint)

**戻り値**

`s` から抽出された部分文字列の配列を返します。[`Array(String)`](/ja/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` は1文字ずつの配列に分割されます。

次の場合、空の部分文字列が含まれることがあります。

* 空でない区切り文字が文字列の先頭または末尾にある場合
* 空でない区切り文字が連続して複数ある場合
* 区切り文字が空でなく、元の文字列 `s` が空の場合

<Note>
  [`splitby_max_substrings_includes_remaining_string`](/ja/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`](/ja/reference/data-types/string)
* `s` — 分割対象の文字列。 [`String`](/ja/reference/data-types/string)
* `max_substrings` — 任意。`max_substrings > 0` の場合、返される部分文字列の数は `max_substrings` 以下になります。それ以外の場合、この関数は可能な限り多くの部分文字列を返します。デフォルト値: `0`。 [`Int64`](/ja/reference/data-types/int-uint)

**戻り値**

`s` から抽出された部分文字列の配列を返します。 [`Array(String)`](/ja/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`](/ja/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (デフォルト: `0`) は、引数 `max_substrings > 0` のときに、残りの文字列を結果配列の最後の要素に含めるかどうかを制御します。
</Note>

**構文**

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

**引数**

* `s` — 分割対象の文字列。[`String`](/ja/reference/data-types/string)
* `max_substrings` — 任意。`max_substrings > 0` の場合、返される部分文字列の数は `max_substrings` を超えません。それ以外の場合、関数は可能な限り多くの部分文字列を返します。デフォルト値: `0`。[`Int64`](/ja/reference/data-types/int-uint)

**戻り値**

`s` から選択された部分文字列の配列を返します。[`Array(String)`](/ja/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](/ja/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha) も参照) 。
* `splitByString(S)` は、ユーザー定義の区切り文字列 `S` で文字列を分割します (関数 [splitByString](/ja/reference/functions/regular-functions/splitting-merging-functions#splitByString) も参照) 。区切り文字は省略可能なパラメーターで指定できます。たとえば `tokens(value, 'splitByString', [', ', '; ', '\n', '\\'])` のように指定します。なお、各区切り文字列は複数文字で構成できます (例では `', '`) 。明示的に指定しない場合、デフォルトの区切り文字リストは単一の空白文字 `[' ']` です。
* `asciiCJK` は、Unicode の単語境界規則 (UAX #29 に類似) を使用して文字列をトークンに分割します。ASCII の英数字およびアンダースコアは、コネクタ (文字には `:`、同種の文字には `.` と `'`) とともにトークンを形成します。非 ASCII の Unicode 文字は 1 文字単位のトークンになります。
* `ngrams(N)` は、文字列を同じ長さの `N`-gram に分割します (関数 [ngrams](/ja/reference/functions/regular-functions/splitting-merging-functions#ngrams) も参照) 。N-gram の長さは、1 から 8 までの省略可能な整数パラメーターで指定できます。たとえば `tokens(value, 'ngrams', 3)` のように指定します。明示的に指定しない場合、デフォルトの ngram サイズは 3 です。
* `sparseGrams(min_length, max_length, min_cutoff_length)` は、文字数が `min_length` 以上 `max_length` 以下 (両端含む) の可変長 n-gram に文字列を分割します (関数 [sparseGrams](/ja/reference/functions/regular-functions/string-functions#sparseGrams) も参照) 。明示的に指定しない場合、`min_length` と `max_length` のデフォルト値はそれぞれ 3 と 100 です。パラメーター `min_cutoff_length` を指定すると、長さが `min_cutoff_length` 以上の n-gram のみが返されます。`ngrams(N)` と比べると、`sparseGrams` トークナイザーは可変長の N-gram を生成するため、元のテキストをより柔軟に表現できます。たとえば `tokens(value, 'sparseGrams', 3, 5, 4)` は、入力文字列から内部的に 3-, 4-, 5-gram を生成しますが、返されるのは 4-gram と 5-gram のみです。
* `array` はトークン化を行いません。つまり、各行の値全体が 1 つのトークンになります (関数 [array](/ja/reference/functions/regular-functions/array-functions#array) も参照) 。

`splitByString` トークナイザーでは、トークンが [プレフィックスコード](https://en.wikipedia.org/wiki/Prefix_code) を構成していない場合、通常は長い区切り文字が優先的にマッチするようにしたいはずです。
そのためには、区切り文字を長さの降順で渡してください。
たとえば、separators = `['%21', '%']` の場合、文字列 `%21abc` は `['abc']` としてトークン化されます。一方、separators = `['%', '%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`](/ja/reference/data-types/string) または [`FixedString`](/ja/reference/data-types/fixedstring)
* `tokenizer` — 使用するトークナイザーです。有効な引数は `splitByNonAlpha`、`splitByString`、`asciiCJK`、`ngrams`、`sparseGrams`、`array` です。省略可能で、明示的に設定しない場合のデフォルトは `splitByNonAlpha` です。[`const String`](/ja/reference/data-types/string)
* `n` — 引数 `tokenizer` が `ngrams` の場合にのみ使用します。N-gram の長さを指定する省略可能なパラメータです。明示的に設定しない場合のデフォルトは `3` です。[`const UInt8`](/ja/reference/data-types/int-uint)
* `separators` — 引数 `tokenizer` が `split` の場合にのみ使用します。区切り文字列を指定する省略可能なパラメータです。明示的に設定しない場合のデフォルトは `[' ']` です。[`const Array(String)`](/ja/reference/data-types/array)
* `min_length` — 引数 `tokenizer` が `sparseGrams` の場合にのみ使用します。最小グラム長を指定する省略可能なパラメータで、デフォルトは `3` です。[`const UInt8`](/ja/reference/data-types/int-uint)
* `max_length` — 引数 `tokenizer` が `sparseGrams` の場合にのみ使用します。最大グラム長を指定する省略可能なパラメータで、デフォルトは `100` です。[`const UInt8`](/ja/reference/data-types/int-uint)
* `min_cutoff_length` — 引数 `tokenizer` が `sparseGrams` の場合にのみ使用します。最小カットオフ長を指定する省略可能なパラメータです。[`const UInt8`](/ja/reference/data-types/int-uint)

**戻り値**

入力文字列から得られたトークンの Array を返します。[`Array`](/ja/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>

導入バージョン: 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`](/ja/reference/data-types/string) または [`FixedString`](/ja/reference/data-types/fixedstring)
* `tokenizer` — 使用するトークナイザーです。有効な値は `splitByNonAlpha`、`splitByString`、`asciiCJK`、`ngrams`、`sparseGrams`、`array` です。省略可能で、明示的に設定しない場合のデフォルトは `splitByNonAlpha` です。[`const String`](/ja/reference/data-types/string)
* `n` — 引数 `tokenizer` が `ngrams` の場合にのみ使用されます。N-gram の長さを指定する省略可能なパラメーターです。明示的に設定しない場合のデフォルトは `3` です。[`const UInt8`](/ja/reference/data-types/int-uint)
* `separators` — 引数 `tokenizer` が `split` の場合にのみ使用されます。区切り文字列を指定する省略可能なパラメーターです。明示的に設定しない場合のデフォルトは `[' ']` です。[`const Array(String)`](/ja/reference/data-types/array)
* `min_length` — 引数 `tokenizer` が `sparseGrams` の場合にのみ使用されます。最小グラム長を指定する省略可能なパラメーターで、デフォルトは `3` です。[`const UInt8`](/ja/reference/data-types/int-uint)
* `max_length` — 引数 `tokenizer` が `sparseGrams` の場合にのみ使用されます。最大グラム長を指定する省略可能なパラメーターで、デフォルトは `100` です。[`const UInt8`](/ja/reference/data-types/int-uint)
* `min_cutoff_length` — 引数 `tokenizer` が `sparseGrams` の場合にのみ使用されます。最小カットオフ長を指定する省略可能なパラメーターです。[`const UInt8`](/ja/reference/data-types/int-uint)

**戻り値**

入力文字列から生成されたトークンの配列を返します。[`Array`](/ja/reference/data-types/array)

**例**

**デフォルトのトークナイザー**

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

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