|
スポンサード リンク
文字列の位置を正規表現を使って取得するには、REGEXP_INSTR関数を使用します
REGEXP_INSTR( 検索対象文字列 ,
検索パターン ,
[ 検索開始位置 ] ,
[ 出現回数 ] ,
[ 戻り値モード ] ,
[ 検索モード ] ) |
正規表現を「検索パターン」に指定して、パターンにマッチする文字を検索対象文字列から検索します。
検索して見つかった位置を返します。
出現回数は、検索対象文字列に出現する検索パターンが何回出現したら戻すかを指定します。
戻り値モード
0 : 最初の文字の位置を返す(デフォルト)
1 : 出現した文字の次の文字の位置を返す。
検索モード
i : 大文字/小文字を区別せずに検索する
c : 大文字/小文字を区別してに検索する。 |
例1) 文字列'aabb1122ccdd'から数字が、何文字目に最初に出現するか検索します。
|
SQL> select regexp_instr( 'aabb1122ccdd' , '[0-9]' ) from dual;
REGEXP_INSTR('AABB1122CCDD','[0-9]')
------------------------------------
5 |
例2) 文字列'aabb1122ccdd'からアルファベットが「a〜z」が、5回目に出現するのは何文字目か検索します。
|
SQL> select
2 regexp_instr( 'aabb1122ccdd', '[a-z]', 1, 5 )
3 from dual;
REGEXP_INSTR('AABB1122CCDD','[A-Z]',1,5)
--------------------------------------
9 |
スポンサード リンク
|