正規表現を使用して文字列とパターンマッチングしているか判別する

構文

REGEXP_LIKE( string , pattern [, match] ) Oracle 10g
return [ boolean ]

引数

string対象の文字列式
pattern正規表現パターン
match検索パラメータNLS_SORT 依存

戻り値

  • 正規表現に一致すれば 「真」一致しなければ「偽」を戻す。

正規表現パターン

最大で 512 バイトまでの正規表現 ⇒ 正規表現パターン 参照
Perl による拡張表現 を使用する場合、例えば \d を指定したとき Perl では最長マッチになるが REGEXP_LIKE では 最短マッチ となる。

検索パラメータ

デフォルト値は大文字小文字の区別は NLS_SORT パラメータ 依存、それ以外は「設定なし」の状態となる。
'cimnx' のように複数のパラメータ指定できるが、競合する設定は左から右に向かって設定が上書きされる。

match_param検索方法
c大文字小文字を区別する(Case sensitive)
i大文字小文字を区別しない(case Insensitive [or Ignore])
m^$ メタ記号を各行の先頭と末尾に一致させる(Multiple lines)
nメタ記号のドット(.) を改行にも一致させる(Newline)
x空白を取り除いて評価する(eXcluding white-space?:Oracle 10g R2)

REGEXP_LIKE 関数の内容 (正規表現 ができる LIKE 条件)

文字列 string 中に 正規表現パターン文字列 pattern にパターンマッチする表現があれば TRUE、なければ FALSE となる。
REGEXP_LIKE の戻り値は LNNVL 関数 と同様 BOOLEAN 型であるため、基本的には WHERE 句 に記述する。
REGEXP_LIKE は「条件」という位置付けにある関数なので CASE 式 と併用して SELECT などの選択式に記述しても問題ないと思われる。

REGEXP_LIKE 使用例

都道府県であるかどうか調べる

SQL> select str, ptn,
  2         case when REGEXP_LIKE(str, ptn) then '都道府県'
  3         else 'それ以外' end reg_like
  4  from regexp_like_sample;
 
STR                  PTN                  REG_LIKE
-------------------- -------------------- ----------------
東京都               (\w+[都道府県])      都道府県
大阪府               (\w+[都道府県])      都道府県
北海道               (\w+[都道府県])      都道府県
沖縄県               (\w+[都道府県])      都道府県
ワシントン州         (\w+[都道府県])      それ以外

都道府県にパターンマッチしたデータを抽出する

SQL> select str from regexp_like_sample where REGEXP_LIKE(str, '(\w+[都道府県])') ;
 
STR
--------------------
東京都
大阪府
北海道
沖縄県

PL/SQL による REGEXP_LIKE の使用例

SQL> declare
  2     vStr    varchar2(10);
  3  begin
  4     vStr := '首都東京';
  5     if (REGEXP_LIKE(vStr,'[京都]')) then
  6             dbms_output.put_line('文字列に京と都が含まれています');
  7     end if;
  8  end;
  9  /
文字列に京と都が含まれています


関連事項

SQL 関数 - REGEXP_LIKE 関連

 
アルファベット別 関数一覧 ショートカット
ABCDEFG
HILMNOP
RSTUVWX
スポンサード リンク

ITエンジニア キャリアアップ・転職・求人情報

Oracle & IT技術者 専門書

続・門外不出のOracle現場ワザ
価格: 2,940 円 (税込)
新品/ユーズド価格: 2,500 円 より
リリース: 2006-09-21
ユーザーレビュー: 2 件

詳解 Oracleアーキテクチャ
価格: 3,360 円 (税込)
新品/ユーズド価格: 3,360 円 より
リリース: 2007-05-30
ユーザーレビュー: 2 件

徹底攻略ORACLE MASTER Bronze DBA 10g問題集
価格: 2,940 円 (税込)
新品/ユーズド価格: 2,149 円 より
リリース: 2004-09-21
ユーザーレビュー: 9 件

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ 会員制(無料)の公式技術サイト
Google