文字列から正規表現に合致した箇所を取り出すには、REGEXP_SUBSTR関数を使用します。
構文
- (REGEXP_SUBSTR構文)
- REGEXP_SUBSTR(文字列, 正規表現 [, 開始位置, 取り出す番目, 検索モード])
開始位置、取り出す番目、検索モードは省略可です。
サンプル
例)文字列から初めて1文字以上の数値に合致する部分を取得する
1 2 |
SELECT REGEXP_SUBSTR('a11a22a33a44a55', '[0-9]+') from dual; → 11 |
例)文字列から2番目に1文字以上の数値に合致する部分を取得する
1 2 |
SELECT REGEXP_SUBSTR('a11a22a33a44a55', '[0-9]+', 1, 2) from dual; → 22 |
例)文字列の7文字目以降で、2番目に1文字以上の数値に合致する部分を取得する
1 2 |
SELECT REGEXP_SUBSTR('a11a22a33a44a55', '[0-9]+', 7, 2) from dual; → 44 |
解説
- 検索モードは以下の通りです。
'i':大文字/小文字を区別しない
'c':大文字/小文字を区別する