regexp_extract_all 関数

適用対象:「はい」のチェック マーク Databricks SQL Databricks Runtime

str 式に一致し、regexp グループ インデックスに対応する regex 内のすべての文字列を抽出します。

構文

regexp_extract_all(str, regexp [, idx] )

引数

  • str: 照合する STRING 式。
  • regexp: パターンが一致する STRING 式。
  • idx: 0 以上の整数式 (省略可能、既定値は 1)。

返品

ARRAY<STRING>

regexp文字列は正規表現である必要があります。 サポートされている構文については 、正規表現 を参照してください。

リテラルを使用する場合は、エスケープ文字の前処理を回避するために raw-literal (r プレフィックス) を使います。

regexp には、複数のグループを含めることができます。 idx は抽出する正規表現グループを示します。 0 の idx は、正規表現全体と一致することを意味します。

一般的なエラー状態

すべての一致からキャプチャ グループを抽出する

idx は、各一致から返すキャプチャ グループを選択します。

> SELECT regexp_extract_all('100-200, 300-400', r'(\d+)-(\d+)', 1);
 [100, 300]

> SELECT regexp_extract_all('100-200, 300-400', r'(\d+)-(\d+)', 2);
 [200, 400]

文字列内のすべての数値を抽出する

> SELECT regexp_extract_all('There are 10 cats, 20 dogs, and 30 birds', r'(\d+)', 1);
 [10, 20, 30]

すべてのハッシュタグを抽出する

> SELECT regexp_extract_all('Posts tagged #data #ai #sql', r'#(\w+)', 1);
 [data, ai, sql]

グループレス パターンのすべての一致を抽出する

パターンにキャプチャ グループがない場合は、 idx 0 を使用して一致全体を返します。

> SELECT regexp_extract_all('Send to alice@example.com or bob@example.org', r'\w+@\w+\.\w+', 0);
 [alice@example.com, bob@example.org]

正規表現パターンが無効です

> SELECT regexp_extract_all('abc', '[invalid', 0);
  Error: INVALID_PARAMETER_VALUE.PATTERN