Oracle

正規表現でOracleのヒント句を検索する

まずは結論から

ヒント句を検索する際の正規表現は以下の通り。

/\*\+ .* \*/

解説

ヒント句の構文としては

/*+  INDEX(〇〇) */

のように必ず

『/*+』と『*/』の間に囲まれていますので、

『/*+』と『*/』 の間に任意の文字を検索する正規表現にしてあげればよいです。

エスケープシーケンスを使う

『.*』が”任意の文字を検索する”

という意味になるので、

/*+.**/

で検索したいところですが、

それではヒント句はヒットしません。

ヒント句で使用されている

『*』 『+』

正規表現では特別な意味をもつので、意図しない検索がされてしまいます。

そんなときは特別な意味を持たせたくない文字の前に

エスケープシーケンス『\』

※フォントやOSの関係で\だったりバックスラッシュだったりします。
見た目が違うだけで、どちらも意味は同じです

をつけてあげます。

対象の文字は特別な意味を持たなくなります。

そのため

/\*\+.*\*/

で検索すると赤字の箇所が特別な意味を持たなくなり、ヒント句がヒットします。

関連記事