Like-Operator (Visual Basic)
Vergleicht eine Zeichenfolge mit einem Muster.
result = string Like pattern
Teile
result
Erforderlich.Beliebige Boolean-Variable.Das Ergebnis ist ein Boolean-Wert, der angibt, ob string und pattern übereinstimmen.string
Erforderlich.Ein 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 Operators Like 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 entsprechendes Beispiel finden Sie unter Gewusst wie: Vergleichen einer Zeichenfolge mit einem Muster (Visual Basic).
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 Operator Like 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 Operator Like 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 finden Sie unter Operatorprozeduren (Visual Basic).
Beispiel
In diesem Beispiel wird der Operator Like 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 (Visual Basic)
Referenz
Vergleichsoperatoren (Visual Basic)
Operatorrangfolge in Visual Basic
Operatoren sortiert nach Funktionalität (Visual Basic)