regexp_replace 関数

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

str と一致する regexp のすべての部分文字列を rep に置き換えます。

構文

regexp_replace(str, regexp, rep [, position] )

引数

  • str: 照合する STRING 式。
  • regexp: パターンが一致する STRING 式。
  • rep: 置換文字列である STRING 式。
  • position: 照合を開始する場所を示す、0 より大きい省略可能な整数数値リテラル。 既定値は 1 です。

返品

STRING です。

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

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

検索は position から始まります。 既定値は 1 で、str の先頭をマークします。 positionstr の文字長を超えると、結果は str になります。

一般的なエラー状態

すべての一致を固定テキストに置き換える

> SELECT regexp_replace('100-200', r'(\d+)', 'num');
 num-num

数字をマスクする

> SELECT regexp_replace('SSN 123-45-6789', r'\d', '#');
 SSN ###-##-####

キャプチャ グループを使用してパーツを並べ替える

置換文字列で、キャプチャ グループ ($1$2) を参照するには、$に続けてグループ番号を使用します。

> SELECT regexp_replace('2024-03-15', r'(\d{4})-(\d{2})-(\d{2})', '$3/$2/$1');
 15/03/2024

繰り返し空白を折りたたむ

> SELECT regexp_replace('too    many   spaces', r'\s+', ' ');
 too many spaces

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

> SELECT regexp_replace('abc', '[invalid', 'x');
  Error: INVALID_PARAMETER_VALUE.PATTERN