- カテゴリ:
REGEXP_SUBSTR_ALL¶
文字列内の:doc:`正規表現</sql-reference/functions-regexp>`に一致するすべてのサブ文字列が含まれる、:ref:`ARRAY <label-data_type_array>`を返します。
- エイリアス:
REGEXP_EXTRACT_ALL
構文¶
引数¶
必須:
subject一致を検索する文字列です。
pattern一致するパターン。
パターンの指定に関するガイドラインについては、 文字列関数(正規表現) をご参照ください。
オプション:
position関数が一致の検索を開始する文字列の先頭からの文字数です。値は正の整数にする必要があります。
デフォルト:
1(一致の検索は左側の最初の文字から始まります)occurrence一致を返し始めるパターンの最初の出現を指定します。
この関数は、最初の
occurrence - 1の一致をスキップします。例えば、5件の一致があり、occurrence引数に3を指定した場合、関数は最初の2件の一致を無視し、3番目、4番目、5番目の一致を返します。デフォルト:
1regex_parameters一致の検索に使用されるパラメーターを指定する1つ以上の文字の文字列です。サポートされている値:
パラメーター
説明
c大文字と小文字を区別する一致
i大文字と小文字を区別しない一致
m複数行モード
e部分一致を抽出
s単一行モード POSIX ワイルドカード文字
.一致\nデフォルト:
c詳細については、 正規表現のパラメーターの指定 をご参照ください。
注釈
デフォルトでは、 REGEXP_SUBSTR_ALL は件名の一致部分全体を返します。ただし、
eパラメーターが指定されている場合、 REGEXP_SUBSTR_ALL はパターンの最初のグループに一致する対象の一部を返します。eは指定されているものの、group_numが指定されていない場合、group_numはデフォルトで1(最初のグループ)になります。パターンにサブ式がない場合、 REGEXP_SUBSTR_ALL はeが設定されていないかのように動作します。eを使用する例については、このトピックの 例 をご参照ください。group_num抽出するグループを指定します。グループは、正規表現で括弧を使用して指定されます。
group_numが指定されている場合、Snowflakeは'e'オプションが指定されていなくても抽出を許可します。'e'が暗黙的に示されます。Snowflakeは最大1024個のグループをサポートします。
group_numを使用する例については、このトピックの 例 をご参照ください。
戻り値¶
この関数は、 ARRAY 型の値を返します。配列には、一致する各サブ文字列の要素が含まれています。
一致するものが見つからない場合、関数は空の配列を返します。
この関数は以下の場合に NULL を返します。
いずれかの引数が NULL です。
group_numを指定し、パターンはその番号を使用してグループ化を指定しません。例えば、パターンが1つのグループ(例えば、a(b)c)のみを指定し、2をgroup_numとして使用する場合、関数は NULL を返します。
使用上の注意¶
正規表現の使用に関する追加情報については、 文字列関数(正規表現) をご参照ください。
照合順序の詳細¶
Arguments with collation specifications currently aren't supported.
例¶
次の例のパターンは、小文字の「a」とそれに続く数字に一致します。この例では、一致すべてを含む ARRAY が返されます。
次の例では、文字列(2)の2番目の文字から一致の検索を開始します。
次の例では、文字列(3)にあるパターンの3番目の発生から一致を返し始めます。
次の例では、大文字と小文字を区別しない一致(i)を実行します。
次の例では、大文字と小文字を区別しない一致を実行し、最初のグループ(ie)に一致する文字列の部分を返します。
次の例は、一致するものが見つからない場合に関数が空の配列を返すことを示しています。
この例では、最初の単語が A である2単語パターンの最初、2番目、3番目の一致から文字列内の2番目の各単語を取得する方法を示します。
まず、テーブルを作成してデータを挿入します。
クエリを実行します。
この例は、文字列内でのパターンの最初の各出現内で最初、2番目、3番目のグループを取得する方法を示しています。この場合、返される値は各グループの一致した単語の個々の文字です。