例: サブ文字列を検索および抽出する

  1. @Contains。次の例は、「Substring」が「String」内にあれば R に True を返します。検索では大文字と小文字が区別されます。
    String := @Prompt([OkCancelEdit]; "String"; "Enter a string"; "");
    Substring := @Prompt([OkCancelEdit]; "Substring"; "Enter a beginning substring"; "");
    Yes := Substring + " is in " + String;
    No := Substring + " is not in " + String;
    R := @Contains(String; Substring);
    @If(R; @Prompt([Ok]; "Yes"; Yes); @Prompt([Ok]; "No"; No))
  2. @Contains。次の例は、「Substring1」か「Substring2」が「String」内のどこかにあれば R に True を返します。検索では大文字と小文字が区別されます。
    String := @Prompt([OkCancelEdit]; "String"; "Enter a string"; "");
    Substring1 := @Prompt([OkCancelEdit]; "Substring"; "Enter substring 1"; "");
    Substring2 := @Prompt([OkCancelEdit]; "Substring"; "Enter substring 2"; "");
    Yes := Substring1 + " or " + Substring2 + " is in " + String;
    No := Substring1 + " and " + Substring2 + " are not in " + String;
    R := @Contains(String; Substring1 : Substring2);
    @If(R; @Prompt([Ok]; "Yes"; Yes); @Prompt([Ok]; "No"; No))
  3. @Left。次の例は、「String」の左から N 個の文字を R に返します。
    String := @Prompt([OkCancelEdit]; "String"; "Enter a string"; "");
    Number := @Prompt([OkCancelEdit]; "Number of characters"; "Enter a number of characters"; "");
    N := @TextToNumber(Number);
    R := @Left(String; N); @Prompt([Ok]; "Leftmost characters"; R)
  4. @Left。次の例は、「String」内で「Substring」よりも左側にある文字を R に返します。
    String := @Prompt([OkCancelEdit]; "String"; "Enter a string"; "");
    Substring := @Prompt([OkCancelEdit]; "Substring"; "Enter a substring"; "");
    R := @Left(String; Substring); @Prompt([Ok]; "Characters left of " + Substring; R)
  5. @RightBack、@Left。[ComposedBy] フィールドの共通名が「Judith Woo」なら、「Woo, Judith」に変更します。@RightBack が姓を返し、@Left が名を返します。
    @RightBack(@Name([CN]; ComposedBy); " ") + ", " + @Left(@Name([CN]; ComposedBy); " ")
  6. @Middle。次の例は、「String」内で「Substring」の次から始まる N 個の文字を R に返します。
    String := @Prompt([OkCancelEdit]; "String"; "Enter a string"; "");
    Substring := @Prompt([OkCancelEdit]; "Substring"; "Enter a substring"; "");
    Number := @Prompt([OkCancelEdit]; "Number of Characters"; "Enter the number of characters"; "");
    N := @TextToNumber(Number);
    R := @Middle(String; Substring; N); @Prompt([Ok]; Number + " characters starting after " + Substring; R)
  7. @ReplaceSubstring。次のエージェントの例は、対象となる文書の [textBody] フィールドで 3 つの置換をします。3 番目の置換は、2 番目の置換でピリオドが 2 つになった場合のために用意されています。
    FIELD textBody := @ReplaceSubstring(textBody; "Acme" : "mousetrap" : ".." ; "Acme, Inc." : "mouse detention device" : ".");
    SELECT @All
  8. @Word。次の例は、空白で単語を区切って、文字列 s から単語 n を抽出します。
    s := @Prompt([OkCancelEdit]; "String"; "Enter a string of words"; "");
    n := @Prompt([OkCancelEdit]; "Word"; "Enter the number of the word to extract"; "");
    ss := @Word(s; " "; @TextToNumber(n)); @Prompt([Ok]; "Substring"; "Word " + n + " is ¥"" + ss + "¥"")
  9. @FileDir。次の例は、指定のパス名から「c:¥market¥data¥」を抽出します。
    @FileDir("c:¥market¥data¥europe.dat")