ページのトップに戻る
Interstage Data Effector ユーザーズガイド

A.1.8 パターン(文字列検索)

パターンについて説明します。


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

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


図A.13 パターンの定義

文字列検索

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

参照

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


図A.14 文字列検索の定義

ワード検索

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

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

参照

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


図A.15 ワード検索の定義

文字列検索

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


文字列一致指定

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

/root/text = '富士通'

/root/textが示す要素の値に“富士通”という文字列を含む場合に真となります。


前方一致指定

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

/root/text = '^富士通'

/root/textが示す要素の値の先頭が“富士通”という文字列で始まる場合に真となります。


後方一致指定

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

/root/text = '富士通$'

/root/textが示す要素の値の末尾が“富士通”という文字列である場合に真となります。


任意文字指定

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

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

表A.10 任意文字指定

記号

意味

連続使用

.

任意の1文字

.?

任意の0~1文字

.+

任意の1文字以上

×

.*

任意の0文字以上

×

○:使用可
×:使用不可

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

/root/textが示す要素の値に“富士”と“会社”という文字列を含み、かつ、その2つの文字列の間の文字数が0文字以上の場合に真となります。

注意

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

参考

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


表A.11 任意文字指定の組合せと真偽の例

キーワード例

データ例

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 = 'アルコール,10C,濃度'

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

注意

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


部分文字指定

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


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

/root/textが示す要素の値に“高田太郎”、“高山太郎”または“高見沢太郎”という文字列を含む場合に真となります。

注意

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


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

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


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

文字範囲指定

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


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

/root/textが示す要素の値に“classA”、“classB”または“classC”という文字列を含む場合に真となります。

注意

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


数値範囲指定

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


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

/root/textが示す要素の値に“アルコール9%” “アルコール10%”または“アルコール11%”という文字列を含む場合に真となります。

ポイント

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

注意

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