Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


2.17.2 正規表現を使用した検索

正規表現を使用してテキストデータを検索することができます。正規表現を使用すると,複雑な検索条件を1つの検索条件で表すことができます。例えば,文字列ABCのあとに,5つの数字がある文字列などを検索することができます。

正規表現を使用した検索の例を次の図に示します。

図2‒59 正規表現を使用した検索の例

[図データ]

正規表現を使用した検索を行う場合は,LIKE_REGEX述語を使用します。LIKE_REGEX述語については,マニュアルHADB SQLリファレンス構成要素述語LIKE_REGEX述語を参照してください。

なお,正規表現を使用してテキストデータを検索する際,テキストインデクスを使用すると,読み込むページを少なくすることができます。その分,表の検索性能を向上させることができます。

メモ

POSIX準拠の正規表現(POSIX1003.2準拠の拡張正規表現)を使用できます。ただし,次に示す点が異なります。

  • 文字列挙に,照合要素([. .]),および文字等価クラス([= =])は使用できません。

  • 後方参照表現(\n)(n1から9までの整数)は使用できません。

  • 特殊文字をリテラル文字として扱う場合,常にエスケープ文字の指定が必要です。また,文字列挙に「 ] 」をリテラル文字として指定する場合,および「^」を先頭以外でリテラル文字として指定する場合もエスケープ文字の指定が必要です。

  • Perl拡張の演算子の一部が使用できます。使用できる表現については,マニュアルHADB SQLリファレンス構成要素述語LIKE_REGEX述語にある文字クラスを参照してください。

重要
  • 正規表現を使用する場合,複数の文字と一致する表現,または複数回の繰り返しの表現などの指定ができます。そのため,指定した正規表現の内容によっては,列のデータを複数回評価することがあります。したがって,列のデータ長が長い場合は,正規表現を使用した検索時に,メモリを大量に使用するおそれがあります。また,検索に時間が掛かるおそれがあります。

  • 繰り返し因子に大きな数を指定した場合,または繰り返し因子をネストして連続で指定した場合は,メモリを大量に使用するおそれがあります。また,検索に時間が掛かるおそれがあります。