Interstage Data Effector ユーザーズガイド |
目次
索引
![]() ![]() |
第4章 データを操作する方法 | > 4.2 データを抽出する | > 4.2.1 文字列で抽出する |
入力ファイルのデータ文字列中から、抽出したいキーワードを含む文書を抽出できます。このような抽出を部分一致検索といいます。部分一致検索は、パス式、項目式または属性式と、検索するキーワードを比較演算子で指定します。比較演算子には、“=”または“!= ”を指定します。
キーワードにさまざまな指定形式を記述することにより、より詳細な検索条件を指定できます。より詳細な検索条件を指定する、この形式のことをパターンと呼びます。
パス式の詳細については、“A.1.3 パス式”を参照してください。
項目式の詳細については、“A.1.4 項目式”を参照してください。
属性式の詳細については、“A.1.5 属性式”を参照してください。
部分一致および比較演算子の詳細については、“A.1.2 条件式”のパターンを参照してください。
キーワードの指定形式には、大きく分けて以下の3つがあります。
ある文字列を含む文書を抽出します。文字列検索では、改行などの検索対象ではない文字は無視して検索できます。
なお、検索対象外として取り扱う文字は、SkipCharパラメタで変更できます。
SkipCharの詳細については、以下を参照してください。
英文のデータを対象として抽出します。単語の区切り文字を意識して検索できます。
なお、単語の区切り文字は、SeparateCharパラメタで変更できます。
SeparateCharの詳細については、以下を参照してください。
“文字列検索”および“ワード検索”を複数組み合わせて抽出できます。
キーワードに、より詳細な検索条件を指定する形式のことをパターンと呼びます。パターンを使った検索をパターン検索と呼びます。パターンによる検索の詳細については、“A.1.6 パターン”を参照してください。
キーワードの指定形式と検索方法について以下の表に示します。
指定形式 |
検索方法 |
---|---|
文字列検索 |
|
ワード検索 |
|
論理演算検索 |
|
抽出したいキーワードを含む文書を抽出できます。
文字列一致指定検索の詳細については、“A.1.6.2 文字列検索”の文字列一致指定を参照してください。
例
出張目的(purpose)の中に“販売”というキーワードを含む文書を抽出します。
$purpose = '販売'結果:文書Aが返却されます。
抽出したい文字列に“.”や“$”などを含む場合には、エスケープ文字を付加します。
たとえば、出張レポート(purpose)の中の“V9.0”というキーワードを含む文書を検索する場合、以下と指定します。
$report = 'V9\.0'
“\”は“.”を抽出するためのエスケープ文字です。
エスケープ文字の詳細については、“A.1.2 条件式”を参照してください。
抽出したいキーワードから始まる文書を抽出できます。
前方一致指定検索の詳細については、“A.1.6.2 文字列検索”の前方一致指定を参照してください。
例
出張目的(purpose)が“Interstage”というキーワードから始まる文書を抽出します。
/doc/detail/purpose = '^Interstage'結果:文書Aと文書Cが返却されます。
抽出したいキーワードで終わる文書を抽出できます。
後方一致指定検索の詳細については、“A.1.6.2 文字列検索”の後方一致指定を参照してください。
例
出張目的(purpose)が“出席”というキーワードで終わる文書を抽出します。
$purpose = '出席$'結果:文書Aと文書Bが返却されます。
“前方一致指定検索”および“後方一致指定検索”を組み合わせることによって、指定したキーワードと完全に一致する文書を抽出できます。例
宿泊費(hotel)が空文字“”の文書を抽出します。
/doc/detail/hotel = '^$'結果:文書Bと文書Cが返却されます。
抽出したい2つのキーワードが、任意の文字の前後に存在する文書を抽出できます。
任意文字指定検索の詳細については、“A.1.6.2 文字列検索”の任意文字指定を参照してください。
例
詳細情報(detail)配下のどこかに、“販売”と“会議”の間に2文字の文字が存在するキーワードを含む文書を抽出します。
/doc/detail/* = '販売..会議'結果:文書Aが返却されます。文書Cのコメント(comment)中の“販売会議”はキーワード間の文字数が2文字ではないため、文書Cは返却されません。
抽出したい2つのキーワードの間に、指定した文字数以内の文字が存在する文書を抽出できます。
文字間隔指定検索の詳細については、“A.1.6.2 文字列検索”の文字間隔指定を参照してください。
例
出張目的(purpose)の中に“AsIs”と“会議”の間の文字数が2文字以内のキーワードを含む文書を抽出します。
$purpose = 'AsIs,2C,会議'結果:文書Cが返却されます。文書Aはキーワード間の文字数が3文字以上であるため返却されません。
抽出したい2つのキーワードの間に、指定した文字列のいずれかを含む文書を抽出できます。
部分文字指定検索の詳細については、“A.1.6.2 文字列検索”の部分文字指定を参照してください。
例
出張エリア(area)に“東京都千代田区”または“東京都港区”というキーワードを含む文書を抽出します。
/doc/detail/destination/@area = '東京都(千代田|港)区'結果:文書Aが返却されます。
抽出したいキーワードの一部の文字が、指定した範囲の文字である文字列を含む文書を抽出できます。
文字範囲指定検索の詳細については、“A.1.6.2 文字列検索”の文字範囲指定を参照してください。
例
分類(class)に“Area-A”、“Area-B”または“Area-C”というキーワードを含む文書を抽出します。
$class = 'Area\-[A-C]'結果:文書A、文書Bおよび文書Cが返却されます。
この例では、“部分文字指定検索”で、“Area\-(A|B|C)”と記述するのと同じです。
抽出したいキーワードの一部の文字が、指定した範囲の数値である文字列のいずれかを含む文書を抽出できます。
数値範囲指定検索の詳細については、“A.1.6.2 文字列検索”の数値範囲指定を参照してください。
例
出張レポート(report)に“検索レスポンス1秒”、“検索レスポンス2秒”、“検索レスポンス3秒”、…、“検索レスポンス11秒”または“検索レスポンス12秒” というキーワードを含む文書を抽出します。
/doc/report = '検索レスポンス[1,12]秒'結果:文書Aが返却されます。
この例では、“部分文字指定検索”で、“検索レスポンス(1|2|3|…|11|12)秒”と記述するのと同じです。
数値範囲指定検索を行う場合は、数値の前後に文字を指定してください。たとえば、“検索レスポンス[1,12]”で抽出すると、文書Bの“検索レスポンス18秒”に1が含まれるため返却されます。
抽出したい単語を含む文書を抽出できます。
ワード検索の場合は、空白などの区切り文字で区切られた文字列を、キーワードと識別して、単語単位の抽出をします。
ワード一致指定検索の詳細については、“A.1.6.3 ワード検索”のワード一致指定を参照してください。
例
英文レポート(reportE)に“Manager”というキーワードを含む文書を抽出します。
$reportE = '\<Manager\>'結果:文書Aが返却されます。
キーワードを連続して記述することで、連続した単語(フレーズ)を含む文書を抽出できます。例
英文レポート(reportE)に“IT Department of Company A”というキーワードを含む文書を抽出します。
$reportE = '\<IT\>\<Department\>\<of\>\<Company\>\<A\>'結果:文書Aが返却されます。
抽出したい2つのキーワードの間に、指定した単語数以内の任意の単語が入ったフレーズを含む文書を抽出できます。
ワード間隔指定検索の詳細については、“A.1.6.3 ワード検索”のワード間隔指定を参照してください。
例
英文レポート(reportE)に“response”という単語で始まり、“seconds”という単語で終わる、途中に5つ以内の単語が入ったフレーズを含む文書を抽出します。
/doc/reportE = '\<response\>,5W,\<seconds\>'結果:文書Aと文書Bが返却されます。
パス式で指定した要素ノードの文字列が、複数指定したすべての条件と一致する文書を抽出できます。
論理積指定検索の詳細については、“A.1.6.1 論理積・論理和・否定”の論理積を参照してください。
例
出張目的(purpose)が“AsIs”というキーワードから始まり、かつ、“会議”というキーワードを含む文書を抽出します。
$ purpose = '^AsIs&会議'結果:文書AとCが返却されます。
例
詳細情報(detail)配下のどこかに、“Interstage”というキーワードを含み、かつ、“販売”と“会議”の間の文字数が2文字以内のキーワードを含む文書を抽出します。
/doc/detail// = 'Interstage&販売,2C,会議'結果:文書Aと文書Cが返却されます。
下記のように“AND”を使用しても例2と同じ抽出をすることができます。例
/doc/detail// = 'Interstage' AND /doc/detail// = '販売,2C,会議'結果:文書Aと文書Cが返却されます。
項目式で指定した文字列が、指定したいずれかの条件と一致する文書を抽出できます。
論理和指定検索の詳細については、“A.1.6.1 論理積・論理和・否定”の論理和を参照してください。
例
出張エリア(area)に“東京都”または“神奈川県”というキーワードを含む文書を抽出します。
$area = '東京都|神奈川県'結果:文書Aと文書Cが返却されます。
指定した条件に一致しない文書を抽出できます。
否定指定検索の詳細については、“A.1.6.1 論理積・論理和・否定”の否定を参照してください。
例
出張エリア(area)に“東京都”を含み、“港区”を含まない文書を抽出します。
/doc/detail/destination/@area = '東京都&~(港区)'結果:文書Aが返却されます。
目次
索引
![]() ![]() |