@Keywords (式言語)

指定された 2 つの文字列リストを調べて、2 つ目のリストの文字列の中から最初のリストにあるアイテムだけを返します。

構文

@Keywords( textList1 ; textList2 ) または @Keywords( textList1 ; textList2 ; separator )

パラメータ

textList1

文字列リスト。アイテムのリストを指定します。

textList2

文字列リスト。textList1 と比較するアイテムのリストを指定します。

separator

文字列。単語の間の分離記号として使用する文字を指定します。文字を複数指定する場合、複数の文字の組み合わせではなく各文字が分離記号として見なされます。例えば、分離記号を「. ,」(ピリオド、空白、カンマ) と定義すると、関数により文字列は、ピリオド、空白、またはカンマの位置で別の単語として区切られます。

分離記号を指定しないときは、デフォルトで次の分離記号が使用されます。

?. ,!;:[](){}"<> (疑問符、ピリオド、スペース、カンマ、感嘆符、セミコロン、コロン、大括弧、括弧、中括弧、引用符、不等号括弧)

空の文字列 ("") で表される Null 分離記号を指定すると、分離記号は使用されません。

戻り値

resultTextList

文字列リスト。デフォルトまたは指定の分離記号が有効であるとき、textList1 が分離記号によって単語に区切られ、textList2 のキーワードと完全に一致する単語が返されます。分離記号が無効のとき (Null 分離記号を指定) は、textList2 に指定したキーワードと一致する textList1 内の一連の文字が返されます。

注: Release 6 では、resultTextList で返される単語の順序は textList1 内の単語の順序と一致します。Release 6 より前のリリースの場合は、resultTextList では textList2 内の順序と一致する順序で単語が返されました。resutlTextList で Release 6 以前の順序が引き続き使用されるようにするには、次のように、式の前に別の @Keywords 関数を付けます。
@Keywords(textList2;@Keywords(textList1;textList2))

使用法

分離記号を指定した場合、textList2 で指定したキーワードが検索対象文字列の先頭の単語のときは Null が返されます。この動作を防ぐには、textList1 の先頭に分離記号のいずれかを付けます。例えば、従業員の名前と職位が含まれている文字列リストから Sally というキーワードを検索するときは、次の式を使用します。

@Keywords(" " + " ,Mary Halen, Director of Sales":" ,Sally Hall, VP of Marketing": " ,Joe Halzy, Order entry"; "Sally"; " ,")

この式では、Sally が返されます。式の分離記号の 1 つである空白 (" ") が textList1 の前に付加されていることに注目してください。デフォルトの分離記号を使用するとき、または Null 分離記号を指定するときは、この動作は起きません。

textList2 の文字列にデフォルトの分離記号のいずれかが含まれているときは、その文字列は返されません。例えば、Harvard University を検索するには、式に Null 分離記号を追加します。このようにすると、任意の文字からなる文字列を検索できます。分離記号を指定しない場合は、デフォルトの分離記号が有効となります。この場合に Harvard University が返されないのは、textList1 を解析するときにデフォルトの分離記号である空白が検出され、Harvard と University という別の単語に分けられるからです。

引用符 (") を分離記号として使用するとき、引用符が文字列定数であることを示すにはその前に円記号 (¥) を付けます。

この関数では大文字と小文字が区別されます。大文字と小文字が区別されないようにするには、textList1 と textList2 の表記を揃える必要があります (@LowerCase、@ProperCase、または @UpperCase を使用)。

  1. 次の式では、Harvard;Yale が返されます。
    @Keywords(@ProperCase("EPA Head speaks at Harvard and yale":"The UCLA Chancellor Retires":"Ohio State wins big game":"Reed and University of Oregon share research facilities");"Harvard":"Brown":"Stanford":"Yale":"Vassar":"UCLA")
  2. 次の例では、Null 文字列 "" が返されます。
    @Keywords("EPA Head speaks at Harvard,Yale":"UCLA Chancellor Retires":"Ohio State wins big game":"Reed and University of Oregon share research facilities";"harvard":"brown":"stanford":"vassar":"ucla")
  3. 次の式では、Harvard;Yale が返されます。textList1 を検索し、カンマまたは空白の後に textList2 のキーワードがあるかどうかを調べます。
    @Keywords("EPA Head speaks at Harvard, Yale hosts her next month":"UCLA Chancellor Retires":"Ohio State wins big game":"Reed and University of Oregon share research facilities";"Harvard":"Brown":"Stanford":"Yale":"UCLA";", ")
  4. 次の式では、Harvard;Yale University;UCLA が返されます。
    @Keywords("EPA Head speaks at Harvard, Yale University hosts her next month":"UCLA Chancellor Retires":"Ohio State wins big game":"Reed and University of Oregon share research facilities";"Harvard":"Brown":"Stanford":"Yale University":"UCLA"; "")
  5. 次の式をフォームの [Result] フィールドで使用するとき、このフォームの [Applicants] フィールドのデフォルト値が ",Mary Jones.":",John Chen.":",Miguel Sanchez." ならば、Mary Jones. が返されます。
    @Keywords(Applicants;"Mary Jones.";",")
  6. 次の式をフォームの [Result] フィールドで使用するとき、このフォームの [Applicants] フィールドのデフォルト値が ",Mary Jones., who works downtown, is being interviewed on Friday.":",John Chen.":",Miguel Sanchez." ならば、Mary Jones. が返されます。
    @Keywords("," + Applicants;"Mary Jones.";",")
  7. 次の式では、book が返されます。
    @Keywords("<booklist> XML tag that represents a list of our books.":"<book> XML tag that represents a book.":"<sale> XML tag that represents the sale price of a book.";"book";"<>")
  8. list1 に "guava":"eggplant":"date":"cherry":"banana":"apple" が含まれ、list2 に "apple":"banana":"date" が含まれていれば、この式が Release 6 のクライアントからのトリガーによって実行された場合、date, banana, apple が返されます。Release 6 以前のクライアントからのトリガーによって実行された場合は、apple, banana, date が返されます。
    @Keywords(list1;list2)
  9. list1 と list2 に前の例と同じ文字列リストが含まれている場合、次の式では Notes のバージョンがどれであっても apple, banana, date が返されます。
    @Keywords(list2;@Keywords(list1;list2))