適用対象:
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