文字列分割関数
以下のドキュメントは 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 など)に対応する要素を持つ配列を生成します。マッチが見つからない場合は空配列を返します。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)
例
使用例
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 以下の場合は、可能な限り多くの部分文字列を返します。デフォルト値は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 文字ごとの配列に分割されます。 正規表現に 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
空白文字で区切られた文字列を、部分文字列の配列に分割します。
設定 splitby_max_substrings_includes_remaining_string(デフォルト値: 0)は、引数 max_substrings > 0 のときに、残りの文字列を結果配列の最後の要素に含めるかどうかを制御します。
構文
引数
s— 分割する文字列。Stringmax_substrings— 省略可能。max_substrings > 0の場合、返される部分文字列の数はmax_substringsを超えません。max_substrings <= 0の場合は、可能な限り多くの部分文字列を返します。デフォルト値:0。Int64
返される値
s を分割して得られた部分文字列の配列を返します。Array(String)
例
使用例
tokens
導入バージョン: v21.11
指定したトークナイザを使って文字列をトークンに分割します。 デフォルトのトークナイザは、英数字以外の ASCII 文字を区切り文字として使用します。
split トークナイザの場合、トークンが接頭辞符号を構成しないときは、より長い区切り文字を優先してマッチさせたいことが多いでしょう。
その場合は、区切り文字を長いものから短いものの順(降順)に並べて渡してください。
例えば、separators = ['%21', '%'] の場合、文字列 %21abc は ['abc'] とトークン化されますが、separators = ['%', '%21'] の場合は ['21ac'] にトークン化されます(これはおそらく意図した結果ではありません)。
構文
引数
value— 入力文字列。StringまたはFixedStringtokenizer— 使用するトークナイザー。指定可能な値はsplitByNonAlpha、ngrams、splitByString、array、sparseGrams。省略可能で、明示的に指定しない場合はsplitByNonAlphaがデフォルト。const Stringngrams— 引数tokenizerがngramsの場合にのみ有効: n-gram の長さを指定するオプションのパラメータ。1 から 8 の間である必要があります。明示的に指定しない場合、デフォルトは3。const UInt8separators— 引数tokenizerがsplitの場合にのみ有効: セパレーターとなる文字列を指定するオプションのパラメータ。明示的に指定しない場合、デフォルトは[' ']。const Array(String)
戻り値
入力文字列から得られるトークンの配列を返します。Array
使用例
デフォルトのトークナイザー
N-gram トークナイザ