REGEXP_SPLIT_TO_ARRAY
正規表現パターンを使用して文字列を分割し、各セグメントを配列として返します。
構文
REGEXP_SPLIT_TO_ARRAY(string, pattern [, flags text])
サポートされる flags パラメータ:
以下の文字を組み合わせることで、マッチング動作を制御する柔軟な正規表現の設定オプションを提供します。
i(大文字小文字を区別しない): パターンマッチングで大文字小文字を区別しません。c(大文字小文字を区別する): パターンマッチングで大文字小文字を区別します(デフォルトの動作)。nまたはm(複数行): 複数行モードを有効にします。このモードでは、^と$はそれぞれ文字列全体の先頭と末尾だけでなく、各行の先頭と末尾にもマッチします。ドット.は改行文字にマッチしません。s(単一行): 単一行モードを有効にします(dot-matches-newline とも呼ばれます)。このモードでは、ドット.は改行文字を含む任意の文字にマッチします。x(空白を無視): パターン内の空白文字を無視します(パターンの可読性が向上します)。q(リテラル):patternを正規表現ではなくリテラル文字列として扱います。
例
基本的な分割
SELECT REGEXP_SPLIT_TO_ARRAY('apple,orange,banana', ',');
┌───────────────────────────────────────────┐
│ ["apple","orange","banana"] │
└───────────────────────────────────────────┘
複雑な区切り文字
SELECT REGEXP_SPLIT_TO_ARRAY('2023-01-01T14:30:00', '[-T:]');
┌───────────────────────────────────────────────────────┐
│ ["2023","01","01","14","30","00"] │
└───────────────────────────────────────────────────────┘
空要素の処理
SELECT REGEXP_SPLIT_TO_ARRAY('a,,b,,,c', ',+');
┌───────────────────────────────────┐
│ ["a","b","c"] │
└───────────────────────────────────┘
flag text を使用する
SELECT regexp_split_to_array('One_Two_Three', '[_-]', 'i')
╭─────────────────────────────────────────────────────╮
│ ['One','Two','Three'] │
╰─────────────────────────────────────────────────────╯
関連情報
- SPLIT: 単純な文字列分割について
- REGEXP_SPLIT_TO_TABLE: 文字列をテーブルに分割します