文字列の分割関数
本ドキュメントは、system.functions システムテーブルから自動生成されています。
alphaTokens
導入バージョン: v1.1
a-z および A-Z の範囲に含まれる連続するバイト列からなる部分文字列を抽出し、その部分文字列の配列を返します。
構文
別名: splitByAlpha
引数
s— 分割する文字列。Stringmax_substrings— 任意。max_substrings > 0の場合、返される部分文字列の数は最大でmax_substringsとなり、0 以下の場合は可能な限り多くの部分文字列が返されます。Int64
返される値
s から抽出された部分文字列の配列を返します。Array(String)
例
使用例
arrayStringConcat
導入バージョン: v1.1
配列内に列挙された値の文字列表現を、指定された区切り文字で連結します。区切り文字は省略可能なパラメータで、省略した場合はデフォルトで空文字列が使用されます。
構文
引数
arr— 連結する配列。Array(T)separator— 任意。区切り文字列。デフォルトは空文字列。const String
戻り値
連結された文字列を返します。String
例
使用例
extractAllGroupsVertical
導入バージョン: v20.5
正規表現を使用して文字列内のすべてのキャプチャグループにマッチさせ、その結果を配列の配列として返します。各配列には、入力文字列中の出現順にグループ化された、各キャプチャグループのマッチ部分が含まれます。
構文
別名: extractAllGroups
引数
s— 抽出対象の入力文字列。StringまたはFixedStringregexp— マッチに使用する正規表現。const Stringまたはconst FixedString
戻り値
配列の配列を返し、各内側の配列には 1 回のマッチでキャプチャされたグループが含まれます。各マッチは、その正規表現内のキャプチャグループ(グループ 1、グループ 2 など)に対応する要素を持つ配列を生成します。マッチが 1 つも見つからない場合は、空の配列を返します。Array(Array(String))
例
使用例
ngrams
導入バージョン: v21.11
UTF-8 でエンコードされた文字列を、長さ N の n-gram に分割します。
構文
引数
s— 入力文字列。StringまたはFixedStringN— N-gram の長さ。const UInt8/16/32/64
戻り値
N-gram の配列を返します。Array(String)
例
使用例
reverseBySeparator
導入バージョン: v26.2
指定したセパレーターで区切られた文字列内の部分文字列の順序を逆にします。 この関数は、文字列をセパレーターで分割し、生成された各部分の順序を反転させ、 同じセパレーターを使って再度結合します。ドメイン名やファイルパスなど、 構成要素の順序を反転させる必要がある階層データの解析に役立ちます。
例:
- reverseBySeparator('www.google.com') は 'com.google.www' を返します
- reverseBySeparator('a/b/c', '/') は 'c/b/a' を返します
- reverseBySeparator('x::y::z', '::') は 'z::y::x' を返します
構文
引数
string— パーツの順序を逆転させる対象となる入力文字列。Stringseparator— パーツを識別するために使用する区切り文字列。指定しない場合は '.' (ドット) を使用します。デフォルト: '.'String
戻り値
元の文字列中の部分文字列を右から左の順に並べ替え、同じ区切り文字で連結した文字列を返します。String
例
ドメイン名の基本的な反転
パスの逆順
任意の区切り文字
ドットを含むエッジケース
単一要素
空の区切り
splitByChar
導入バージョン: v1.1
長さ 1 文字の定数文字列 separator を区切り文字として用いて、文字列を部分文字列の配列に分割します。
区切り文字が文字列の先頭または末尾にある場合、あるいは複数の区切り文字が連続している場合には、空の部分文字列が生成されることがあります。
splitby_max_substrings_includes_remaining_string(デフォルト: 0)は、引数 max_substrings > 0 のときに残りの文字列を結果配列の最後の要素に含めるかどうかを制御します。
次の場合、空の部分文字列が生成されることがあります:
- 区切り文字が文字列の先頭または末尾にある場合
- 複数の区切り文字が連続している場合
- 元の文字列
sが空である場合
構文
引数
separator— 区切り文字は 1 バイト文字である必要があります。Strings— 分割対象の文字列。Stringmax_substrings— 省略可能。max_substrings > 0の場合、返される配列には最大でmax_substrings個の部分文字列が含まれます。それ以外の場合は、可能な限り多くの部分文字列を返します。デフォルト値は0です。Int64
返される値
抽出された部分文字列の配列を返します。 Array(String)
例
使用例
splitByNonAlpha
導入バージョン: v21.9
空白文字および句読点文字で区切られた文字列を、部分文字列の配列に分割します。
設定 splitby_max_substrings_includes_remaining_string(デフォルト: 0)は、引数 max_substrings が 0 より大きい場合に、残りの文字列を結果配列の最後の要素に含めるかどうかを制御します。
構文
引数
s— 分割対象の文字列。Stringmax_substrings— 省略可能。max_substrings > 0の場合、返される部分文字列の数はmax_substringsを超えず、それ以外の場合は可能な限り多くの部分文字列を返します。デフォルト値:0。Int64
戻り値
s から取得した部分文字列の配列を返します。Array(String)
例
使用例
splitByRegexp
導入バージョン: v21.6
指定された正規表現で区切られた文字列を、部分文字列の配列に分割します。 指定された正規表現が空文字列の場合、文字列は 1 文字ごとの配列に分割されます。 正規表現にマッチしない場合、文字列は分割されません。
次のような場合に空の部分文字列が生成されることがあります:
- 空ではない正規表現のマッチが文字列の先頭または末尾にある場合
- 複数の空ではない正規表現のマッチが連続している場合
- 元の文字列が空で、正規表現が空ではない場合
splitby_max_substrings_includes_remaining_string(デフォルト: 0)は、引数 max_substrings > 0 のときに、残りの文字列を結果配列の最後の要素に含めるかどうかを制御します。
構文
引数
regexp— 正規表現。定数。StringまたはFixedStrings— 分割対象の文字列。Stringmax_substrings— オプション。max_substrings > 0の場合、返される部分文字列の数は最大でmax_substrings個となり、それ以外の場合は可能な限り多くの部分文字列を返します。デフォルト値:0。Int64
戻り値
s から抽出された部分文字列の配列を返します。Array(String)
例
使用例
空の正規表現
splitByString
導入: v1.1
複数文字から成る定数 separator をセパレータとして文字列を分割し、部分文字列の配列を返します。
文字列 separator が空の場合、文字列 s を 1 文字ずつの配列に分割します。
次の場合、空の部分文字列が生成されることがあります:
- 空でないセパレータが文字列の先頭または末尾に現れる場合
- 複数の空でないセパレータが連続している場合
- セパレータは空でない一方で、元の文字列
sが空の場合
splitby_max_substrings_includes_remaining_string (デフォルト: 0) は、引数 max_substrings > 0 のときに、残りの文字列を結果配列の最後の要素に含めるかどうかを制御します。
構文
引数
separator— 区切り文字。Strings— 分割する文字列。Stringmax_substrings— 省略可能。max_substrings > 0の場合、返される部分文字列の数は最大でmax_substringsとなり、それ以外の場合は可能な限り多くの部分文字列を返します。デフォルト値:0。Int64
返される値
s から抽出された部分文字列の配列を返します。Array(String)
例
使用例
空の区切り文字
splitByWhitespace
導入バージョン: v21.9
空白文字で区切られた文字列を、部分文字列の配列に分割します。
引数 max_substrings > 0 の場合に、結果配列の最後の要素に残りの文字列を含めるかどうかは、設定 splitby_max_substrings_includes_remaining_string(デフォルト: 0)で制御されます。
構文
引数
s— 分割する文字列。Stringmax_substrings— 省略可能。max_substrings > 0の場合、返される部分文字列の数は最大でもmax_substrings個となり、それ以外の場合は可能な限り多くの部分文字列を返します。デフォルト値:0。Int64
返される値
s から取得された部分文字列の配列を返します。Array(String)
例
使用例
tokens
導入されたバージョン: v21.11
指定したトークナイザーを使用して文字列をトークンに分割します。
利用可能なトークナイザー:
splitByNonAlphaは、英数字以外の ASCII 文字で文字列を分割します(関数 splitByNonAlpha も参照してください)。splitByString(S)は、ユーザー定義の区切り文字列Sに沿って文字列を分割します(関数 splitByString も参照してください)。区切り文字はオプションのパラメータで指定でき、例えばtokenizer = splitByString([', ', '; ', '\n', '\\'])のように指定します。各文字列は複数文字(この例では', ')から構成されていてもかまいません。区切り文字リストを明示的に指定しない場合(例えばtokenizer = splitByString)、デフォルトの区切り文字リストは単一の空白[' ']です。ngrams(N)は、文字列を同じ長さのN-gram に分割します(関数 ngrams も参照してください)。ngram の長さは 1 から 8 の整数のオプションパラメータで指定でき、例えばtokenizer = ngrams(3)のように指定します。ngram のデフォルトサイズは、明示的に指定しない場合(例えばtokenizer = ngrams)、3 です。sparseGrams(min_length, max_length, min_cutoff_length)は、少なくともmin_length文字、最大で(両端を含めて)max_length文字の可変長 n-gram に文字列を分割します(関数 sparseGrams も参照してください)。明示的に指定しない場合、min_lengthとmax_lengthのデフォルト値はそれぞれ 3 と 100 です。パラメータmin_cutoff_lengthを指定した場合、その長さ以上の n-gram のみが返されます。ngrams(N)と比較すると、sparseGramsトークナイザーは可変長の N-gram を生成するため、元のテキストをより柔軟に表現できます。例えば、tokenizer = sparseGrams(3, 5, 4)は内部的には入力文字列から 3, 4, 5-gram を生成しますが、返されるのは 4-gram と 5-gram のみです。arrayはトークナイズを行わず、各行の値全体を 1 つのトークンとして扱います(関数 array も参照してください)。
splitByString トークナイザーの場合、トークンが prefix code を形成しないときには、より長い区切り文字を優先してマッチさせたい場合が多いでしょう。
そのためには、区切り文字を長い順(長さの降順)に並べて渡してください。
例えば、separators = ['%21', '%'] の場合、文字列 %21abc は ['abc'] にトークナイズされますが、separators = ['%', '%21'] の場合は ['21ac'] にトークナイズされます(これはおそらく意図した結果ではないでしょう)。
構文
引数
value— 入力文字列。StringまたはFixedStringtokenizer— 使用するトークナイザー。有効な引数はsplitByNonAlpha、ngrams、splitByString、array、sparseGramsです。省略可能で、明示的に指定しない場合はsplitByNonAlphaがデフォルトになります。const Stringn— 引数tokenizerがngramsの場合にのみ有効: n-gram の長さを指定する省略可能なパラメータです。明示的に指定しない場合は3がデフォルトです。const UInt8separators— 引数tokenizerがsplitの場合にのみ有効: 区切り文字列を指定する省略可能なパラメータです。明示的に指定しない場合は[' ']がデフォルトです。const Array(String)min_length— 引数tokenizerがsparseGramsの場合にのみ有効: gram の最小長を指定する省略可能なパラメータで、デフォルトは 3 です。const UInt8max_length— 引数tokenizerがsparseGramsの場合にのみ有効: gram の最大長を指定する省略可能なパラメータで、デフォルトは 100 です。const UInt8min_cutoff_length— 引数tokenizerがsparseGramsの場合にのみ有効: 最小カットオフ長を指定する省略可能なパラメータです。const UInt8
戻り値
入力文字列から生成されたトークンの配列を返します。Array
例
デフォルトのトークナイザー
Nグラムトークナイザー