文字列内で正規表現に合致する箇所を置換するには、REGEXP_REPLACE関数を使用します。
構文
- (REGEXP_REPLACE構文)
- REGEXP_REPLACE( 文字列, 正規表現, 置換後の文字 [, 開始位置, 置換する番目, 検索モード])
開始位置、置換する番目、検索モードは省略可です。
サンプル
例)文字列から1文字以上の数値に合致する部分全てを'X'に置換する
1 2 |
SELECT REGEXP_REPLACE('a11a22a33a44a55', '[0-9]+', 'X') from dual; →aXaXaXaXaX |
例)文字列から2番目に1文字以上の数値に合致する部分を'X'に置換する
1 2 |
SELECT REGEXP_REPLACE('a11a22a33a44a55', '[0-9]+', 'X', 1, 2) from dual; →a11aXa33a44a55 |
解説
- 置換する番目を省略した場合は、合致した箇所全てが置換対象となります。
- 検索モードは以下の通りです。
'i':大文字/小文字を区別しない
'c':大文字/小文字を区別する