ページの先頭行へ戻る
Interstage Data Effector リファレンス集
Interstage

3.2.2 パターン検索

キーワード検索の1つである、パターン検索には以下があります。

表3.10 パターン検索の種類

大分類

中分類

種類

パターン検索

パターン検索(文字列)

文字列一致指定

前方一致指定

後方一致指定

任意文字指定

文字間隔指定

部分文字指定

文字範囲指定

数値範囲指定

パターン検索(ワード)

ワード一致指定

ワード間隔指定

パターン検索の論理積・論理和・否定

論理積

論理和

否定

パターン検索は、二重引用符(")または引用符(')で囲みます。二重引用符(")と引用符(')は混在して使用できません。

パターンでは、さまざまな検索条件を指定できます。部分的な一致の検索や単語の検索など、複雑な条件を記述して検索できます。

パターン検索の定義を以下の図に示します。

図3.14 パターン検索の定義


図3.15 パターンの定義

パターン検索(文字列)

パターン検索(文字列)の定義を以下の図に示します。
検索対象外として取り扱う文字は、SkipCharで変更できます。

図3.16 パターン検索(文字列)の定義


パターン検索(ワード)

パターン検索(ワード)の定義を以下の図に示します。
単語の区切り文字は、SeparateCharで変更できます。
ワード検索中に記述できる文字は、単語の区切り文字を除くASCII文字です。

図3.17 パターン検索(ワード)の定義

ワード検索の詳細については、“パターン検索(ワード)”を参照してください。

参照

SeparateCharの詳細については、以下を参照してください。


パターン検索(文字列)

パターン検索(文字列)について説明します。

文字列一致指定

要素の値に、指定されたキーワードが含まれるかどうかを調べます。

/root/textが示す要素の値に“富士通”という文字列を含むデータを検索します。

/root/text = '富士通'

前方一致指定

要素の値の先頭に、指定されたキーワードが存在するかどうかを調べます。

/root/textが示す要素の値の先頭が“富士通”という文字列で始まるデータを検索します。

/root/text = '^富士通'

後方一致指定

要素の値の末尾に、指定されたキーワードが存在するかどうかを調べます。

/root/textが示す要素の値の末尾が“富士通”という文字列で終わるデータを検索します。

/root/text = '富士通$'

任意文字指定

要素の値に、任意の文字が入ったキーワードを含んでいるかどうかを調べます。

キーワードに含む任意の文字の指定には、以下の表の4種類を指定できます。

表3.11 任意文字指定

記号

意味

連続使用

.

任意の1文字

.?

任意の0~1文字

.+

任意の1文字以上

×

.*

任意の0文字以上

×

○:使用可
×:使用不可

/root/textが示す要素の値に“富士”と“会社”という文字列を含み、かつ、その2つの文字列の間の文字数が0文字以上のデータを検索します。

/root/text = '富士.*会社'

注意

連続使用不可な記号を連続して使用した場合は、構文エラーとなります。

参考

任意文字指定は、自由に組み合わせることができます。任意文字指定の組合せと真偽の例を以下の表に示します。なお、以下の表は比較演算子に“=”を指定した場合の結果です。


表3.12 任意文字指定の組合せと真偽の例

キーワード例

データ例

AB

AXB

AYYB

AZZZB

'A.'

'A.B'

×

×

×

'A.?B'

×

×

'A.+B'

×

'A.*B'

'A..?B'

×

×

'A..+B'

×

×

'A..*B'

×

'A.?.+B'

×

'A.?.*B'

○:真
×:偽


文字間隔指定

要素の値に、指定された2つのキーワードが指定された文字数以内の間隔をおいて連続して出現するかどうかを調べます。
文字間隔指定の数値に指定できる値は、0~1024です。

/root/textが示す要素の値に“アルコール”と“濃度”という文字列を含み、かつ、その2つの文字列の間の文字数が10文字以内であるデータを検索します。

/root/text = 'アルコール,10C,濃度'

注意

文字列検索に文字間隔指定は、一度だけ指定できます。
文字間隔指定の直前または直後に、任意文字指定を記述することはできません。


部分文字指定

要素の値に、指定されたキーワードが含まれるかどうかを調べます。キーワードの一部は、複数の文字列のいずれかで構成されます。


/root/textが示す要素の値に“高田太郎”、“高山太郎”または“高見沢太郎”という文字列を含むデータを検索します。

/root/text = '高(田|山|見沢)太郎'

注意

部分文字指定、文字範囲指定および数値範囲指定の検索を実行する場合には、多くのメモリを使用することがあります。運用するコンピュータに十分なメモリが用意されていない場合には、検索レスポンスに影響が発生し、場合によってはアプリケーションがメモリオーバーフローエラーを検出することがあります。
部分文字指定、文字範囲指定または数値範囲指定の検索を実行する場合に、使用する最大のメモリサイズは以下の計算で算出可能です。


部分文字の数、文字の範囲または数値の範囲×キーワードの文字数×1キロバイト

部分文字指定、文字範囲指定または数値範囲指定が複数指定されている場合には、各部分文字の数、各文字の範囲または各数値の範囲を乗算した値が、範囲となります。
部分文字指定、文字範囲指定および数値範囲指定を組み合わせて検索を実行する場合には、使用する最大のメモリサイズは以下の計算で算出可能です。


部分文字の数×文字の範囲×数値の範囲×キーワードの文字数×1キロバイト

文字範囲指定

要素の値に、指定されたキーワードが含まれるかどうかを調べます。キーワードの一部は、指定された範囲の文字のいずれかで構成されます。
文字1の文字コードの値は、文字2の文字コードの値より小さくなければなりません。文字1と文字2はともにASCII文字の1文字でなければなりません。


/root/textが示す要素の値に“classA”、“classB”または“classC”という文字列を含むデータを検索します。

/root/text = 'class[A-C]'

注意

文字範囲指定の検索を実行する場合に、多くのメモリを使用することがあります。


数値範囲指定

要素の値に、指定されたキーワードが含まれるかどうかを調べます。キーワードの一部は、指定された範囲の数値のいずれかで構成されます。
数値1は数値2より小さくなければなりません。数値1と数値2はともに半角数字でなければなりません。なお、数値1と数値2に指定できる値は、0~999です。


/root/textが示す要素の値に“アルコール9%” “アルコール10%”または“アルコール11%”という文字列を含むデータを検索します。

/root/text = 'アルコール[9,11]%'

ポイント

数値の前後に文字を指定すると、正しい検索結果が得られます。

注意

数値範囲指定の検索を実行する場合に、多くのメモリを使用することがあります。


パターン検索(ワード)

以下について説明します。


ワード一致指定

要素の値に、指定されたキーワードと一致する単語が含まれるかどうかを調べます。ワード検索の場合は、区切り文字で区切られた文字列を、単語として識別します。


/root/textが示す要素の値に“the”という単語を含むデータを検索します。

/root/text = '\<the\>'

“mother”の“the”は単語の途中にあるため偽となります。


ワード間隔指定

要素の値に、指定された2つのキーワードが指定された単語数以内の間隔をおいて連続して出現するかどうかを調べます。
ワード間隔指定の数値に指定できる値は、0~1024です。


/root/textが示す要素の値に“search”と“AsIs”という単語を含み、かつ、その2つの単語の間の単語数が10ワード以内であるデータを検索します。

/root/text = '\<search\>,10W,\<AsIs\>'

注意

ワード検索にワード間隔指定は、一度だけ指定できます。


パターン検索論理積・論理和・否定

以下について説明します。


論理積

パス式で指定した要素の値が、指定されたすべてのパターンを含むかどうかを調べます。

/root/textが示す要素の値に“高速”および“検索”という文字列を両方含むデータを検索します。

/root/text = '高速&検索'

論理和

パス式で指定した要素の値が、指定されたどちらかのパターンを含むかどうかを調べます。

/root/textが示す要素の値に“高速”または“検索”という文字列を含むデータを検索します。

/root/text = '高速|検索'

否定

要素の値が、指定されたパターンを含まないかどうかを調べます。

/root/textが示す要素の値に“高速”という文字列も“検索”という文字列も含まないデータを検索します。

/root/text = '~(高速|検索)'

ポイント

パターン検索には、論理積、論理和、否定を組み合わせて使用できます。このときの評価順序は以下のとおりです。

  1. 否定

  2. 論理積

  3. 論理和

また、括弧(“(”および“)”)を使用して評価順序を指定できます。括弧の中の条件は、優先的に評価されます。