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 resultTrue. Wenn die Zeichenfolge das Muster nicht erfüllt, entspricht 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. 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*"

Weitere Informationen