Like-Operator (Visual Basic)

Aktualisiert: November 2007

Vergleicht eine Zeichenfolge mit einem Muster.

result = string Like pattern

Bestandteile

  • result
    Erforderlich. Beliebige Boolean-Variable. Das Ergebnis ist ein Boolean-Wert, der angibt, ob string und pattern übereinstimmen.

  • string
    Erforderlich. Beliebiger String-Ausdruck.

  • pattern
    Erforderlich. Beliebiger String-Ausdruck, der den unter "Hinweise" beschriebenen Mustervergleichskonventionen entspricht.

Hinweise

Wenn der Wert in string dem in pattern enthaltenen Muster entspricht, ist resultTrue. Wenn die Zeichenfolge nicht dem Muster entspricht, ist resultFalse. Wenn sowohl string als auch pattern leere Zeichenfolgen sind, lautet das Ergebnis True.

Vergleichsmethode

Das Verhalten des Like-Operators hängt von der Option Compare-Anweisung ab. Option Compare Binary ist die Standardzeichenfolgenvergleichsmethode für jede Quelldatei.

Mustervergleichsoptionen

Integrierter Mustervergleich ist ein vielseitiges Tool für Zeichenfolgenvergleiche. Die Mustervergleichsoptionen ermöglichen es Ihnen, die einzelnen Zeichen von string mit einem bestimmten Zeichen, einem Platzhalterzeichen, einer Zeichenliste oder einem Bereich von Zeichen zu vergleichen. Die folgende Tabelle enthält die in pattern zulässigen Zeichen sowie deren Übereinstimmung.

Zeichen in pattern

Übereinstimmungen in string

?

Ein beliebiges einzelnes Zeichen

*

Null oder mehrere Zeichen

#

Beliebige einstellige Ziffer [0 – 9]

[charlist]

Beliebiges Zeichen in charlist

[!charlist]

Beliebiges Zeichen, das nicht in charlist enthalten ist

Zeichenlisten

Eine Gruppe von einem oder mehreren Zeichen (charlist), die in eckige Klammern ([ ]) eingeschlossen ist, kann mit einem einzigen Zeichen in string abgeglichen werden und kann fast jeden Zeichencode, einschließlich Ziffern, enthalten.

Ein Ausrufezeichen (!) am Anfang von charlist bedeutet, dass eine Übereinstimmung vorliegt, wenn ein beliebiges Zeichen mit Ausnahme der Zeichen in charlist in string gefunden wird. Das Ausrufezeichen gleicht sich mit sich selbst ab, wenn es nicht in Klammern eingeschlossen wird.

Sonderzeichen

Um nach den Sonderzeichen linke eckige Klammer ([), Fragezeichen (?), Nummernzeichen (#) und Stern (*) suchen zu können, muss das Zeichen in Klammern gesetzt werden. Nach einer rechten eckigen Klammer (]) kann innerhalb einer Gruppe nicht gesucht werden; sie kann außerhalb einer Gruppe jedoch als individuelles Zeichen verwendet werden.

Die Zeichenfolge [] wird als Zeichenfolge mit der Länge 0 (null, "") betrachtet. Sie kann jedoch nicht Teil einer Zeichenliste sein, die in eckige Klammern eingeschlossen ist. Wenn Sie überprüfen möchten, ob sich an einer bestimmten Position in string ein Zeichen aus einer Gruppe von Zeichen oder kein Zeichen befindet, können Sie Like zweimal verwenden. Ein Beispiel finden Sie unter Gewusst wie: Vergleichen einer Zeichenfolge mit einem Muster.

Zeichenbereiche

charlist kann einen Zeichenbereich angeben, wenn Sie die Ober- und Untergrenze des Bereichs mit einem Bindestrich (–) trennen. Beispielsweise ergibt [A–Z] eine Übereinstimmung, falls die entsprechende Zeichenposition in string beliebige Großbuchstaben im Bereich A – Z enthält. [!H–L] ergibt eine Übereinstimmung, wenn sich an der entsprechenden Zeichenposition ein beliebiges Zeichen befindet, das nicht im Bereich H – L enthalten ist.

Zur Festlegung eines Zeichenbereichs müssen die Zeichen in aufsteigender Sortierreihenfolge angegeben werden, d. h. vom niedrigsten zum höchsten. Daher ist [A–Z] ein gültiges Muster, [Z–A] dagegen nicht.

Mehrere Zeichenbereiche

Um mehrere Bereiche für die gleiche Zeichenposition anzugeben, fügen Sie sie ohne Trennzeichen in dasselbe Paar eckige Klammern ein. Beispielsweise ergibt [A–CX–Z] eine Übereinstimmung, wenn die entsprechende Zeichenposition in string ein Zeichen aus dem Bereich A – C oder dem Bereich X – Z enthält.

Verwenden des Bindestrichs

Ein Bindestrich (–) kann entweder am Anfang (nach einem Ausrufezeichen, sofern verwendet) oder am Ende von charlist stehen, wenn eine Übereinstimmung mit dem Bindestrichzeichen gesucht wird. An jeder anderen Stelle identifiziert der Bindestrich einen Bereich von Zeichen, der durch die Zeichen auf jeder Seite des Bindestrichs eingegrenzt ist.

Sortierreihenfolge

Die Bedeutung eines bestimmten Bereichs hängt von der Zeichenreihenfolge ab, die während der Laufzeit gültig ist. Die Reihenfolge hängt von OptionCompare und den Gebietsschemaeinstellungen des Systems ab, unter dem der Code ausgeführt wird. Wenn OptionCompareBinary aktiviert ist, findet der Bereich [A–E] Übereinstimmungen mit A, B, C, D und E. Wenn OptionCompareText aktiviert ist, findet der Bereich [A–E] Übereinstimmungen mit A, a, À, à, B, b, C, c, D, d, E und e. Der Bereich findet weder mit Ê noch mit ê Übereinstimmungen, da Buchstaben mit Akzent in der Sortierreihenfolge nach den Zeichen ohne Akzent folgen.

Digraphzeichen

In einigen Sprachen gibt es Zeichen im Alphabet, die zwei separate Zeichen darstellen. Beispielsweise verwenden verschiedene Sprachen das Zeichen æ, um die Zeichen a und e darzustellen, sobald sie zusammen auftreten. Der Like-Operator erkennt, dass das Digraphzeichen und die beiden einzelnen Zeichen einander entsprechen.

Wenn in den Gebietsschemaeinstellungen eine Sprache festgelegt ist, in der Digraphzeichen verwendet werden, stimmt ein Vorkommen des einzelnen Digraphzeichens in pattern oder string mit den entsprechenden zwei Zeichen in der anderen Zeichenfolge überein. Ein einzelnes Digraphzeichen in pattern, das in eckige Klammern eingeschlossen ist (alleine, in einer Liste oder in einem Bereich), stimmt mit den entsprechenden zwei Zeichen in string überein.

Überladen

Der Like-Operator kann überladen werden. Das bedeutet, dass eine Klasse oder Struktur sein Verhalten neu definiert, wenn ein Operand den Typ dieser Klasse oder Struktur aufweist. Wenn Sie diesen Operator im Code auf eine solche Klasse oder Struktur anwenden, sollten Sie auf jeden Fall sein neu definiertes Verhalten verstehen. Weitere Informationen hierzu finden Sie unter Operatorprozeduren.

Beispiel

In diesem Beispiel wird der Like-Operator verwendet, um eine Zeichenfolge mit verschiedenen Mustern zu vergleichen. Die Ergebnisse werden in eine Boolean-Variable geschrieben, die angibt, ob die einzelnen Zeichenfolgen dem Muster entsprechen.

Dim testCheck As Boolean
' The following statement returns True (does "F" satisfy "F"?)
testCheck = "F" Like "F"
' The following statement returns False for Option Compare Binary
'    and True for Option Compare Text (does "F" satisfy "f"?)
testCheck = "F" Like "f"
' The following statement returns False (does "F" satisfy "FFF"?)
testCheck = "F" Like "FFF"
' The following statement returns True (does "aBBBa" have an "a" at the
'    beginning, an "a" at the end, and any number of characters in 
'    between?)
testCheck = "aBBBa" Like "a*a"
' The following statement returns True (does "F" occur in the set of
'    characters from "A" through "Z"?)
testCheck = "F" Like "[A-Z]"
' The following statement returns False (does "F" NOT occur in the 
'    set of characters from "A" through "Z"?)
testCheck = "F" Like "[!A-Z]"
' The following statement returns True (does "a2a" begin and end with
'    an "a" and have any single-digit number in between?)
testCheck = "a2a" Like "a#a"
' The following statement returns True (does "aM5b" begin with an "a",
'    followed by any character from the set "L" through "P", followed
'    by any single-digit number, and end with any character NOT in
'    the character set "c" through "e"?)
testCheck = "aM5b" Like "a[L-P]#[!c-e]"
' The following statement returns True (does "BAT123khg" begin with a
'    "B", followed by any single character, followed by a "T", and end
'    with zero or more characters of any type?)
testCheck = "BAT123khg" Like "B?T*"
' The following statement returns False (does "CAT123khg"?) begin with
'    a "B", followed by any single character, followed by a "T", and
'    end with zero or more characters of any type?)
testCheck = "CAT123khg" Like "B?T*"

Siehe auch

Aufgaben

Gewusst wie: Vergleichen einer Zeichenfolge mit einem Muster

Konzepte

Operatoren und Ausdrücke in Visual Basic

Referenz

Vergleichsoperatoren (Visual Basic)

InStr-Funktion (Visual Basic)

Operatorrangfolge in Visual Basic

Operatoren sortiert nach Funktionalität

Option Compare-Anweisung

StrComp-Funktion (Visual Basic)