論理式の中で、ストリング式を別の (match 基準 と呼ばれる) ストリングと、文字位置ごとに左から右へ比較することができます。 この機能の用途は、UNIX® または Perl における正規表現 の用途によく似ています。
以下に例を示します。
// 変数 myVar01 はストリング式である // その内容が match 基準と比較される myVar01 = "abcdef"; // 次の論理式は「真」へと評価される if (myVar01 matches "a?c*") ; end
match 基準は、リテラル、CHAR 型または MBCHAR 型の項目、UNICODE 型の項目のいずれかにすることができます。 match 基準の中には、以下の文字を組み込むことができます。
[abc]
[a-c]
ハイフン (-) は、大括弧の区切り文字の外部では特別な意味を持ちません。
[^abc]
通常、このエスケープ文字は、例えばアスタリスク (*) や疑問符 (?) など、エスケープ文字がないと match 基準内で別の意味になる文字の前に置かれます。 .
円記号を (デフォルトの振る舞いどおりに) エスケープ文字として使用した場合、EGL は同じエスケープ文字を使用して任意のテキスト式内への引用符の組み込みを許可するので、問題が起きます。 match 基準の内容においては、2 つの円記号を指定する必要があります。実行時に使用可能なテキストは、最初の円記号を除いたテキストだからです。
この問題を回避することをお勧めします。 後で例を示すように、escape 文節を使用することにより、別の文字をエスケープ文字として指定してください。 ただし、二重引用符 (") をエスケープ文字として使用することはできません。
それ以外の matchCriterion 内の文字は、すべてリテラルであり、ストリング式 内の単一の文字と比較されます。
// 変数 myVar01 はストリング式である // その内容が match 基準と比較される myVar01 = "ab*def"; // 次の論理式は「真」へと評価される if (myVar01 matches "ab\\*[abcd][abcde][^a-e]") ; end // 次の論理式は「真」へと評価される if (myVar01 matches "ab+*def" escape "+") ; end