Like-Operator (Visual Basic)
Hiermit wird eine Zeichenfolge mit einem Muster verglichen.
Wichtig
Der Like
-Operator wird derzeit in .NET Core- und .NET Standard-Projekten nicht unterstützt.
Syntax
result = string Like pattern
Bestandteile
result
Erforderlich. Dies ist eine beliebige Boolean
-Variable. Das Ergebnis ist ein Boolean
-Wert, der angibt, ob string
dem pattern
entspricht.
string
Erforderlich. Beliebiger String
-Ausdruck.
pattern
Erforderlich. Dies ist ein beliebiger String
-Ausdruck, der den unter „Hinweise“ beschriebenen Musterabgleichskonventionen entspricht.
Hinweise
Wenn der Wert in string
das Muster in pattern
erfüllt, entspricht result
True
. Wenn die Zeichenfolge das Muster nicht erfüllt, entspricht result
False
. 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. Die Standard-Zeichenfolgenvergleichsmethode für jede Quelldatei lautet Option Compare Binary
.
Musteroptionen
Der integrierte Musterabgleich bietet ein vielseitiges Tool für Zeichenfolgenvergleiche. Mit den Musterabgleichsfeatures können Sie jedes Zeichen in string
mit einem bestimmten Zeichen, einem Platzhalterzeichen, einer Zeichenliste oder einem Zeichenbereich abgleichen. In der folgenden Tabelle sind die in pattern
zulässigen Zeichen und die Übereinstimmungen aufgeführt.
Zeichen in pattern |
Übereinstimmungen in string |
---|---|
? |
Ein einzelnes Zeichen |
* |
Kein oder mehrere Zeichen |
# |
Eine beliebige einstellige Zahl (0–9) |
[charlist] |
Ein beliebiges einzelnes Zeichen in charlist |
[!charlist] |
Ein beliebiges einzelnes Zeichen, das nicht in charlist ist |
Zeichenlisten
Eine Gruppe mit mindestens einem Zeichen (charlist
), das in eckige Klammern ([ ]
) eingeschlossen ist, kann verwendet werden, um jedes einzelne Zeichen in string
abzugleichen, und die Gruppe kann fast jeden Zeichencode enthalten (einschließlich Zahlen).
Ein Ausrufezeichen (!
) am Anfang von charlist
bedeutet, dass eine Übereinstimmung vorliegt, wenn abgesehen von den Zeichen in charlist
ein beliebiges Zeichen in string
gefunden wird. Bei Verwendung außerhalb von eckigen Klammern, gleich das Ausrufezeichen sich selbst ab.
Sonderzeichen
Um Sonderzeichen wie die linke eckige Klammer ([
), das Fragezeichen (?
), das Hash-Symbol (#
) und das Sternchen (*
) abzugleichen, schließen Sie sie in eckige Klammern ein. Die rechte eckige Klammer (]
) kann nicht innerhalb einer Gruppe verwendet werden, um sich selbst abzugleichen, aber sie kann außerhalb einer Gruppe als einzelnes Zeichen verwendet werden.
Die Zeichensequenz []
wird als Zeichenfolge mit der Länge 0 (""
) betrachtet. Sie kann jedoch nicht Teil einer in Klammern eingeschlossenen Zeichenliste sein. Wenn Sie überprüfen möchten, ob eine Position in string
einer Gruppe von Zeichen oder gar kein Zeichen enthält, können Sie Like
zweimal verwenden. Ein Beispiel finden Sie unter Abgleichen einer Zeichenfolge mit einem Muster.
Zeichenbereiche
Wenn Sie einen Trennstrich (–
) verwenden, um die unteren und oberen Grenzen des Bereichs zu trennen, kann charlist
einen Zeichenbereich angeben. [A–Z]
führt beispielsweise zu einer Übereinstimmung, wenn die entsprechende Zeichenposition in string
ein beliebiges Zeichen innerhalb des Bereichs A
bis Z
enthält, und [!H–L]
führt zu einer Übereinstimmung, wenn die entsprechende Zeichenposition ein beliebiges Zeichen außerhalb des Bereichs H
bis L
enthält.
Wenn Sie einen Bereich von Zeichen angeben, müssen sie in aufsteigender Sortierreihenfolge angezeigt werden (d. h. vom niedrigsten bis zum höchsten Wert). Daher ist [A–Z]
ein gültiges Muster, [Z–A]
jedoch nicht.
Mehrere Zeichenbereiche
Wenn Sie mehrere Bereiche für dieselbe Zeichenposition angeben möchten, platzieren Sie sie in derselben Klammer ohne Trennzeichen. [A–CX–Z]
führt beispielsweise zu einer Übereinstimmung, wenn die entsprechende Zeichenposition in string
ein beliebiges Zeichen innerhalb des Bereichs A
bis C
oder des Bereichs X
bis Z
enthält.
Verwendung des Trennstrichs
Ein Trennstrich (–
) kann entweder am Anfang (nach einem Ausrufezeichen, falls vorhanden) oder am Ende von charlist
angezeigt werden, um sich selbst abzugleichen. An einer anderen Position identifiziert der Trennstrich einen Bereich von Zeichen, der durch die Zeichen vor bzw. nach dem Trennstrich getrennt ist.
Sortierreihenfolge
Die Bedeutung eines angegebenen Bereichs hängt von der Zeichenanordnung zur Laufzeit ab (wie durch Option Compare
und die Gebietsschemaeinstellung des Systems bestimmt, auf dem der Code ausgeführt wird). Bei Option Compare Binary
stimmt der Bereich [A–E]
mit A
, B
, C
, D
und E
überein. Bei Option Compare Text
stimmt [A–E]
mit A
, a
, À
, à
, B
, b
, C
, c
, D
, d
, E
und e
überein. Der Bereich stimmt nicht mit Ê
oder ê
überein, da akzentuierte Zeichen in der Sortierreihenfolge nach nicht akzentuierten Zeichen eingereiht werden.
Digrafzeichen
In einigen Sprachen gibt es alphabetische Zeichen, die zwei separate Zeichen darstellen. Beispielsweise verwenden mehrere Sprachen das Zeichen æ
, um die Zeichen a
und e
darzustellen, wenn sie zusammen verwendet werden. Der Like
-Operator erkennt, dass das einzelne Digrafzeichen und die beiden einzelnen Zeichen äquivalent sind.
Wenn in den Gebietsschemaeinstellungen des Systems eine Sprache angegeben wird, die ein Digrafzeichen verwendet, entspricht ein Vorkommen des einzelnen Digrafzeichens in pattern
oder string
der entsprechenden zweistelligen Sequenz in der anderen Zeichenfolge. Ebenso entspricht ein in Klammern eingeschlossenes Digrafzeichen in pattern
(selbst, in einer Liste oder in einem Bereich) der entsprechenden zweistelligen Sequenz in string
.
Überladen
Der Like
-Operator kann überladen werden. Dies bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn ein Operand den Typ dieser Klasse oder Struktur aufweist. Wenn Ihr Code diesen Operator für eine solche Klasse oder Struktur verwendet, stellen Sie sicher, dass Sie das neu definierte Verhalten verstehen. Weitere Informationen finden Sie unter Operator Procedures.
Beispiel
In diesem Beispiel wird der Like
-Operator verwendet, um Zeichenfolgen mit verschiedenen Mustern abzugleichen. Die Ergebnisse werden in eine Boolean
-Variable umgewandelt, die angibt, ob jede Zeichenfolge dem Muster entspricht.
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*"