matches (Operator)

Mithilfe des Operators 'matches' wird eine Zeichenfolge mit einem regulären Ausdruck verglichen. Die Verwendung des Operators 'like' ähnelt der Verwendung regulärer Ausdrücke in UNIX oder Perl; Informationen zu einfacheren regulären Ausdrücken finden Sie unter like (Operator).

Der Operator 'matches' führt den Vergleich Zeichen für Zeichen von links nach rechts durch und endet, sobald eine der folgenden Bedingungen erfüllt ist:

Syntax

Syntaxdiagramm für den Operator 'matches'
Zeichenfolge
Eine Variable vom Typ STRING für den Vergleich mit einem regulären Ausdruck.
regulärer_Ausdruck
Ein regulärer Ausdruck, mit dem die Zeichenfolge verglichen werden soll. Der reguläre Ausdruck kann ein Literal oder eine Variable des Typs CHAR oder MBCHAR oder eine Variable des Typs UNICODE sein. Weitere Informationen hierzu finden Sie im Abschnitt 'Regeln für reguläre Ausdrücke' in diesem Thema.

Regeln für reguläre Ausdrücke

Sie können die folgenden Sonderzeichen in den regulären Ausdruck einschließen:
*
Fungiert als Platzhalter, der für null oder mehr Zeichen im Zeichenfolgeausdruck steht.
?
Fungiert als Platzhalter, der für ein einzelnes Zeichen im Zeichenfolgeausdruck steht.
[ ]
Alle Zeichen innerhalb der beiden eckigen Klammern sind gültige Übereinstimmungen für das nächste Zeichen im Zeichenfolgenausdruck. So gibt beispielsweise die folgende Komponente eines regulären Ausdrucks an, dass 'a', 'b' oder 'c' als Übereinstimmung gültig ist:
  [abc]
-
Erstellt einen Bereich innerhalb der eckigen Klammern. Alle Zeichen innerhalb dieses Bereichs sind gültige Übereinstimmungen für das nächste Zeichen im Zeichenfolgenausdruck. So gibt beispielsweise die folgende Komponente eines regulären Ausdrucks an, dass 'a', 'b' oder 'c' als Übereinstimmung gültig ist:
  [a-c]

Außerhalb von eckigen Klammern hat der Bindestrich (-) keine spezielle Bedeutung.

^
Das Winkelzeichen kehrt die Bedeutung der eckigen Klammern um. Alle Zeichen mit Ausnahme derjenigen innerhalb der eckigen Klammern sind gültige Übereinstimmungen für das nächste Zeichen im Zeichenfolgenausdruck. So gibt beispielsweise die folgende Komponente eines regulären Ausdrucks an, dass alle Zeichen außer 'a', 'b' und 'c' als Übereinstimmung gültig sind:
  [^abc]

Das Winkelzeichen hat nur dann eine besondere Bedeutung, wenn es innerhalb von eckigen Klammern an erster Stelle steht.

\
Gibt an, dass das folgende Zeichen mit einem einzelnen Zeichen im Zeichenfolgeausdruck verglichen werden soll. Der umgekehrte Schrägstrich (\) wird auch Escapezeichen genannt, da es dazu führt, dass die übliche Verarbeitung durch ein Escape 'verlassen' wird. Das Escapezeichen selbst wird mit keinem Zeichen im Zeichenfolgeausdruck verglichen. Das Escapezeichen wird normalerweise einem Zeichen vorangestellt, das ansonsten eine bestimmte Bedeutung im regulären Ausdruck hätte, wie beispielsweise ein Stern (*) oder ein Fragezeichen (?).
Wenn Sie den umgekehrten Schrägstrich als Escapezeichen verwenden (was dem Standardverhalten entspricht), tritt ein Problem auf, da EGL dasselbe Escapezeichen verwendet, um das Einschließen doppelter Anführungszeichen in einen Textausdruck zu ermöglichen. Im Zusammenhang mit einem regulären Ausdruck müssen Sie zwei umgekehrte Schrägstriche angegeben, da es sich bei dem zur Laufzeit verfügbaren Text um den Text handelt, in dem der anfängliche umgekehrte Schrägstrich fehlt. Um dieses Problem zu vermeiden, müssen Sie ein anderes Zeichen als Escapezeichen angeben, indem Sie das Schlüsselwort 'escape' verwenden, wie unter "Beispiele" in diesem Thema gezeigt wird. Hierbei ist zu beachten, dass kein doppeltes Anführungszeichen (") als Escapezeichen verwendet werden kann.

Alle anderen Zeichen im regulären Ausdruck sind Literale, die mit einem einzelnen Zeichen in der Quellenzeichenfolge verglichen werden.

Beispiele

Im folgenden Beispiel werden Platzhalterzeichen in einem regulären Ausdruck verwendet:
myVar01 = "abcdef";

// Wird als TRUE (wahr) ausgewertet 
if (myVar01 matches "a?c*")
   ;
end
Das folgende Beispiel zeigt die Verwendung des Escapezeichens. Bitte beachten Sie hier die Verwendung von doppelten umgekehrten Schrägstrichen:
myVar01 = "ab*def";

// Wird als TRUE (wahr) ausgewertet
if (myVar01 matches "ab\\*[abcd][abcde][^a-e]")
   ;
end
Im folgenden Beispiel wird das Schlüsselwort 'escape' verwendet, um das Pluszeichen als Escapezeichen im regulären Ausdruck zu verwenden:
myVar01 = "ab*def";

// Der folgende logische Ausdruck ergibt 'true' (wahr).
if (myVar01 matches "ab+*def" escape "+")
    ;
end

Feedback