Like-Operator

Dient zum Vergleichen zweier Zeichenfolgen.

Syntax

Ergebnis = ZeichenfolgewieMuster

Die Syntax des Wie-Operators enthält die folgenden Bestandteile:

Teil Beschreibung
result Erforderlich. Eine beliebige numerische Variable.
Zeichenfolge Erforderlich. Ein Zeichenfolgenausdruck.
pattern Erforderlich. Ein beliebiger Zeichenfolgenausdruck mit einem gültigen Mustervergleich (wie unter Anmerkungen beschrieben).

HinwBemerkungeneise

Wenn die Zeichenfolge mit dem Muster übereinstimmt, ist resultTrue; Wenn keine Übereinstimmung vorhanden ist, ist das ErgebnisFalse. Wenn eine Zeichenfolge oder ein MusterNull ist, ist resultNull.

Das Verhalten des Like hängt von der Option Compare-Anweisung ab. Die Standardmethode für den Zeichenfolgenvergleich für die einzelnen Module lautet Option Compare Binary.

Bei Option Compare Binary erfolgen Zeichenfolgenvergleiche basierend auf einer Sortierreihenfolge, die durch die interne binäre Darstellung der Zeichen festgelegt ist. Die Sortierreihenfolge wird durch die Codepage festgelegt.

Das folgende Beispiel zeigt eine typische binäre Sortierreihenfolge:

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Option Compare Text führt zu Zeichenfolgenvergleichen basierend auf einer Sortierreihenfolge für Text (ohne Groß- und Kleinschreibung zu berücksichtigen), die im Gebietsschema Ihres Systems festgelegt ist. Wenn Sie dieselben Zeichen mit Option Compare Text sortieren, erhalten Sie die folgende Reihenfolge:

(A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)

Der integrierte Mustervergleich stellt ein vielseitiges Hilfsmittel für Zeichenfolgenvergleiche dar. Mit den Mustervergleichsfunktionen können Sie Platzhalterzeichen, Zeichenlisten oder Zeichenbereiche in einer beliebigen Kombination verwenden, um Zeichenfolgen zu vergleichen. In der folgenden Tabelle finden Sie die für pattern zulässigen Zeichen und wofür diese jeweils stehen:

Zeichen in pattern Steht in string für
? Ein beliebiges einzelnes Zeichen.
* Null oder mehrere Zeichen.
# Jede einzelne Ziffer (0-9).
[ charlist ] Ein beliebiges einzelnes Zeichen in charlist.
[ !charlist ] Ein beliebiges einzelnes Zeichen, das nicht in charlist enthalten ist.

Eine Gruppe von einem oder mehreren Zeichen ( charlist ), die in Klammern ([ ]) eingeschlossen sind, kann verwendet werden, um jedes einzelne Zeichen in einer Zeichenfolge abzugleichen, und kann fast jeden Zeichencode enthalten, einschließlich Ziffern.

Hinweis

Um die Sonderzeichen in der linken Klammer ([), dem Fragezeichen (?), dem Nummernzeichen (#) und dem Sternchen (*) abzugleichen, schließen Sie sie in eckige Klammern ein. Die rechte Klammer (]) kann nicht innerhalb einer Gruppe verwendet werden, um sich selbst abzugleichen, aber sie kann außerhalb einer Gruppe als einzelnes Zeichen verwendet werden.

Wenn Sie den größten und den kleinsten Wert eines Bereichs mit einem Bindestrich (-) trennen, kann charlist einen Bereich von Zeichen angeben. Beispielsweise führt zu einer Übereinstimmung, [A-Z] wenn die entsprechende Zeichenposition in der Zeichenfolge Großbuchstaben im Bereich A bis Z enthält. Mehrere Bereiche können Sie ohne weitere Trennzeichen nacheinander in dem Klammernpaar angeben.

Die Bedeutung eines angegebenen Bereichs hängt von der zur Laufzeit gültigen Zeichenreihenfolge ab (wie durch Option Compare und die Gebietsschemaeinstellung des Systems bestimmt, auf dem der Code ausgeführt wird). Anhand des Optionsvergleichsbeispiels Binärdatei stimmt der Bereich [A-E] mit A, B und E überein. Mit Option Compare Text[A-E] entspricht A, a, À, à, B, b, E, e. Der Bereich stimmt nicht mit Ê oder ê überein, da akzentierte Zeichen in der Sortierreihenfolge nach nicht adressierten Zeichen fallen.

Weitere wichtige Regeln zum Mustervergleich:

  • Ein Ausrufezeichen (!) am Anfang von charlist bedeutet, dass sich eine Übereinstimmung ergibt, wenn, außer in den Zeichen in charlist, ein beliebiges Zeichen in string gefunden wird. Wird das Ausrufezeichen außerhalb der eckigen Klammern verwendet, so dient es als Platzhalterzeichen für sich selbst.
  • Ein Bindestrich (-) kann entweder am Anfang (nach einem Ausrufezeichen, sofern vorhanden) oder am Ende von charlist als Platzhalterzeichen für sich selbst stehen. An jeder anderen Position dient der Bindestrich zur Kennzeichnung eines Zeichenbereichs.
  • Wenn ein Zeichenbereich festgelegt wird, müssen die Zeichen in aufsteigender Sortierreihenfolge (vom niedrigsten zum höchsten) angegeben werden. [A-Z] ist demnach ein zulässiges Muster, [Z-A] dagegen nicht.
  • Die Zeichenfolge [] wird als leere Zeichenfolge ("") betrachtet.

In einigen Sprachen gibt es Sonderzeichen im Alphabet, die eigentlich zwei separate Zeichen darstellen. In verschiedenen Sprachen wird zum Beispiel das Zeichen "æ" verwendet, um die Zeichen "a" und "e" darzustellen, wenn Sie nebeneinander erscheinen. Der Like-Operator erkennt, dass das einzelne Sonderzeichen und die beiden einzelnen Zeichen einander entsprechen.

Wenn eine Sprache, in der ein Sonderzeichen verwendet wird, in den Ländereinstellungen des Systems angegeben ist, stimmt das einzelne Sonderzeichen in pattern oder string mit der entsprechenden Zusammensetzung aus zwei Zeichen in der anderen Zeichenfolge überein. Ähnlich stimmt ein einzelnes, in Pattern oder in eckige Klammern gesetztes Sonderzeichen (einzeln, in einer Liste oder einem Bereich), mit der entsprechenden Zusammensetzung aus zwei Zeichen in string überein.

Beispiel

In diesem Beispiel wird der Like-Operator verwendet, um eine Zeichenfolge mit einem Muster zu vergleichen.

Dim MyCheck
MyCheck = "aBBBa" Like "a*a"    ' Returns True.
MyCheck = "F" Like "[A-Z]"    ' Returns True.
MyCheck = "F" Like "[!A-Z]"    ' Returns False.
MyCheck = "a2a" Like "a#a"    ' Returns True.
MyCheck = "aM5b" Like "a[L-P]#[!c-e]"    ' Returns True.
MyCheck = "BAT123khg" Like "B?T*"    ' Returns True.
MyCheck = "CAT123khg" Like "B?T*"    ' Returns False.
MyCheck = "ab" Like "a*b"    ' Returns True.
MyCheck = "a*b" Like "a [*]b"    ' Returns False.
MyCheck = "axxxxxb" Like "a [*]b"    ' Returns False.
MyCheck = "a [xyz" Like "a [[]*"    ' Returns True.
MyCheck = "a [xyz" Like "a [*"    ' Throws Error 93 (invalid pattern string).

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.