メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

REGEXP_REPLACE 関数

文字列で正規表現パターンを検索し、このパターンのすべての出現を特定の文字列に置き換えます。REGEXP_REPLACE は REPLACE 関数 関数に似ていますが、文字列で正規表現パターンを検索することができます。正規表現に関する詳細については、「POSIX 演算子」を参照してください。

REGEXP_REPLACE は、TRANSLATE 関数REPLACE 関数 と似ています。ただし、TRANSLATE は複数の単一文字置換を行い、REPLACE は 1 つの文字列全体を別の文字列に置換しますが、REGEXP_REPLACE を使用すると正規表現パターンの文字列を検索できます。

構文

Copy
REGEXP_REPLACE ( source_string, pattern [, replace_string [ , position ] ] )

引数

source_string

検索する文字列式 (列名など)。

pattern

SQL の標準の正規表現パターンを表す文字列リテラル。

replace_string

パターンのすべての出現に置き換わる列名などの文字列式。デフォルトは空の文字列 ("") です。

position

検索を開始する source_string 内の位置を示す正の整数。position はバイト数ではなく文字数に基づくため、マルチバイト文字は 1 文字としてカウントされます。デフォルトは1です。position が 1 より小さい場合、source_string の最初の文字から検索が開始されます。positionsource_string の文字数より大きい場合、結果は source_string になります。

戻り型

VARCHAR

pattern または replace_string のいずれかが NULL の場合、戻り値は NULL です。

次の例は、メールアドレスから @ とドメイン名を削除します。

Copy
select email, regexp_replace( email, '@.*\\.(org|gov|com)$') from users limit 5; email | regexp_replace -----------------------------------+---------------- DonecFri@semperpretiumneque.com | DonecFri mk1wait@UniOfTech.org | mk1wait sed@redshiftemails.com | sed bunyung@integermath.gov | bunyung tomsupporter@galaticmess.org | tomsupporter

次の例は、架空の WEBSITES テーブルから URL を選択し、ドメイン名をこの値に置き換えます。internal.company.com/

Copy
select url, regexp_replace(url, '^.*\\.[[:alpha:]]{3}/', 'internal.company.com/') from websites limit 4; url ----------------------------------------------------- | regexp_replace +----------------------------------------------------- example.com/cuisine/locations/home.html | internal.company.com/cuisine/locations/home.html anycompany.employersthere.com/employed/A/index.html | internal.company.com/employed/A/index.html example.gov/credentials/keys/public | internal.company.com/credentials/keys/public yourcompany.com/2014/Q1/summary.pdf | internal.company.com/2014/Q1/summary.pdf

このページの内容: