ページの先頭行へ戻る
Interstage Information StorageV10.0.0 アプリケーション開発ガイド

3.3.6 パターン

抽出キーワード内に演算子を記述することにより、部分的な一致の抽出や単語の抽出など、複雑な条件を記述できます。この形式のことをパターンと呼びます。

複雑な条件を記述することにより、より詳細な抽出条件を指定できます。


パターンによる抽出では、パス式、項目式または属性式と、抽出キーワードを比較演算子(=、!=)で指定します。


検索対象外の文字列を設定したい場合は、“2.5.6 setSkipCharメソッド”(検索対象外文字列)で設定できます。


書式

["][文字列]["]

  または

['][文字列][']


3.3.6.1 論理積

要素の値に、指定されたすべての文字列を含むかどうかを調べます。

書式

["][文字列1][&][文字列2][&][文字列n]["]

  または

['][文字列1][&][文字列2][&][文字列n][']


/root/textが示す要素の値が「富士通」および「営業」という文字列を両方含む場合に真となります。

/root/text = "富士通&営業"

3.3.6.2 論理和

要素の値に、指定されたいずれかの文字列を含むかどうかを調べます。


書式

["][文字列1][|][文字列2][|][文字列n]["]

  または

['][文字列1][|][文字列2][|][文字列n][']


/root/textが示す要素の値が「人事部」または「経理部」という文字列のどちらかを含む場合に真となります。

/root/text = "人事部|経理部"

3.3.6.3 否定

要素の値に、指定された文字列を含まないかどうかを調べます。


書式

["][~(文字列)]["]

  または

['][~(文字列)][']


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

/root/text = "~(富士通)"

ポイント

論理積、論理和、否定のパターンは組み合わせての記述が可能です。

このときの評価順序は以下のとおりです。

1) 否定

2) 論理積

3) 論理和

ただし、括弧(「(」および「)」)を使用して評価順序を指定できます。

この場合、括弧の中の条件は、優先的に評価されます。


/root/textが示す要素の値に「総務部」または「業務部」という文字列を含み、かつ、「経理」という文字列を含まない場合に真となります。

/root/text = "~(経理)&(総務部|業務部)"

3.3.6.4 ワード一致指定

ワード一致指定は、英文のデータを対象として抽出します。

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


書式

["][\<][検索ワード1][\>][\<][検索ワード2][\>][\<][検索ワードn][\>]["]

  または

['][\<][検索ワード1][\>][\<][検索ワード2][\>][\<][検索ワードn][\>][']


/root/textが示す要素の値に「the」という単語を含む場合に真となります。例えば、「mother」の「the」は単語の途中にあるため偽となります。

/root/text = "¥<the¥>"

ポイント

検索ワードを連続して記述することで、連続した単語(フレーズ)を含む文書またはレコードを抽出できます。

/root/textが示す要素の値に「IT Department of Company A」というフレーズを含む文書を抽出します。

/root/text = "¥<IT¥>¥<Department¥>¥<of¥>¥<Company¥>¥<A¥>"

3.3.6.5 ワード間隔指定

ワード間隔指定は、英文のデータを対象として抽出します。

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

ワード間隔指定の数値に指定できる値は、0~1024です。


書式

["][\<][検索ワード1][\>][,ワード間隔W,][\<][検索ワード2][\>]["]

  または

['][\<][検索ワード1][\>][,ワード間隔W,][\<][検索ワード2][\>][']


/root/textが示す要素の値に「check number」と「fujitsu limited」という単語を含み、かつ、その2つの単語の間の単語数が100ワード以内である場合に真となります。

/root/text = "\<check number\>,100W,\<fujitsu limited\>"

注意

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

3.3.6.6 文字列一致指定

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


書式

["][文字列]["]

  または

['][文字列][']


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

/root/text = "富士通"

3.3.6.7 前方一致指定

要素の値の先頭に、指定された文字列が存在するかどうかを調べます。


書式

["][^][文字列]["]

  または

['][^][文字列][']


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

/root/text = "^富士通"

3.3.6.8 後方一致指定

要素の値の末尾に、指定された文字列が存在するかどうかを調べます。


書式

["][文字列][$]["]

  または

['][文字列][$][']


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

/root/text = "富士通$"

3.3.6.9 任意文字指定

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

文字列に含む任意の文字は、以下の表に示す4種類を指定できます。記号は半角で指定します。

書式

["][文字列1][記号][文字列2]["]

  または

['][文字列1][記号][文字列2][']


表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'

○:真

×:偽

3.3.6.10 文字間隔指定

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

文字間隔を数値で指定します。


書式

["][文字列1][,文字間隔C,][文字列2]["]

  または

['][文字列1][,文字間隔C,][文字列2][']


半角数字で指定します。

文字間隔指定の数値に指定できる値は、0~1024です。


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

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

注意

・文字列抽出に文字間隔指定は、一度だけ指定できます。

・文字間隔指定の直前または直後に、任意文字指定を記述することはできません。

3.3.6.11 部分文字指定

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


書式

["][文字列1][(][文字1][|][文字2][|][文字n][)][文字列2]["]

  または

['][文字列1][(][文字1][|][文字2][|][文字n][)][文字列2][']


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

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

注意

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

部分文字指定、文字範囲指定または数値範囲指定の抽出を実行する場合に、使用する最大のメモリサイズは以下の計算式で算出できます。

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

部分文字指定、文字範囲指定または数値範囲指定が複数指定されている場合には、各部分文字の数、各文字の範囲または各数値の範囲を乗算した値が、範囲となります。

部分文字指定、文字範囲指定および数値範囲指定を組み合わせて抽出を実行する場合には、使用する最大のメモリサイズは以下の計算式で算出できます。

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

3.3.6.12 文字範囲指定

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

文字1の文字コードの値は、文字2の文字コードの値より小さくなければなりません。文字1と文字2はともにASCII文字の1文字でなければなりません。


書式

["][文字列1][[文字1-文字2]][文字列2]["]

  または

['][文字列1][[文字1-文字2]][文字列2][']


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

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

注意

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

3.3.6.13 数値範囲指定

要素の値が、指定された数値の範囲に含まれるかどうかを調べます。


書式

["][文字列1][[数値1,数値2]][文字列2]["]

  または

['][文字列1][[数値1,数値2]][文字列2][']


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

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

注意

・数値1は数値2より小さい数値を指定します。数値1と数値2はともに半角数字を指定します。なお、数値1と数値2に指定できる値は、0~999です。

・数値範囲指定の抽出を行う場合は、数値の前後に文字を指定してください。

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