Gewusst wie: Vergleichen einer Zeichenfolge mit einem Muster (Visual Basic)
Wenn Sie herausfinden möchten, ob ein Ausdruck des Datentyps „string“ (Zeichenfolge) einem Muster entspricht, können Sie den Like-Operator verwenden.
Like
akzeptiert zwei Operanden. Der linke Operand ist ein Zeichenfolgenausdruck, und der rechte Operand ist eine Zeichenfolge, die das Muster enthält, das für den Abgleich verwendet werden soll. Like
gibt einen Boolean
-Wert zurück, der anzeigt, ob der Zeichenfolgenausdruck dem Muster entspricht.
Sie können jedes Zeichen im Zeichenfolgenausdruck mit einem bestimmten Zeichen, einem Platzhalterzeichen, einer Zeichenliste oder einem Zeichenbereich abgleichen. Die Positionen der Spezifikationen in der Musterzeichenfolge entsprechen den Positionen der Zeichen, die im Zeichenfolgenausdruck abgeglichen werden sollen.
So gleichen Sie ein Zeichen im Zeichenfolgenausdruck mit einem bestimmten Zeichen ab
Fügen Sie das spezifische Zeichen direkt in die Musterzeichenfolge ein. Bestimmte Sonderzeichen müssen in eckige Klammern ([ ]
) eingeschlossen werden. Weitere Informationen finden Sie unter Like-Operator.
Im folgenden Beispiel wird getestet, ob myString
genau aus dem einzelnen Zeichen H
besteht.
Dim sMatch As Boolean = myString Like "H"
So gleichen Sie ein Zeichen im Zeichenfolgenausdruck mit einem Platzhalterzeichen ab
Fügen Sie ein Fragezeichen (?
) in die Musterzeichenfolge ein. Jedes gültige Zeichen an dieser Position ergibt eine erfolgreiche Übereinstimmung.
Im folgenden Beispiel wird getestet, ob myString
aus dem einzelnen Zeichen W
, gefolgt von genau zwei Zeichen beliebiger Werte besteht.
Dim sMatch As Boolean = myString Like "W??"
So gleichen Sie ein Zeichen im Zeichenfolgenausdruck mit einer Liste von Zeichen ab
Fügen Sie eckige Klammern ([ ]
) in die Musterzeichenfolge ein, und fügen Sie zwischen den Klammern die Liste der Zeichen ein. Trennen Sie die Zeichen nicht durch Kommas oder andere Trennzeichen. Jedes einzelne Zeichen in der Liste ergibt eine erfolgreiche Übereinstimmung.
Im folgenden Beispiel wird getestet, ob myString
aus einem gültigen Zeichen, gefolgt von genau einem der Zeichen A
, C
oder E
besteht.
Dim sMatch As Boolean = myString Like "?[ACE]"
Beachten Sie, dass bei diesem Abgleich die Groß-/Kleinschreibung beachtet wird.
So gleichen Sie ein Zeichen im Zeichenfolgenausdruck mit einem Zeichenbereich ab
Fügen Sie eckige Klammern ([ ]
) in die Musterzeichenfolge ein, und fügen Sie zwischen den Klammern die niedrigsten und höchsten Zeichen im Bereich ein, getrennt durch einen Bindestrich (–
). Jedes einzelne Zeichen innerhalb des Bereichs ergibt eine erfolgreiche Übereinstimmung.
Im folgenden Beispiel wird getestet, ob myString
aus den Zeichen num
, gefolgt von genau einem der Zeichen i
, j
, k
, l
, m
oder n
besteht.
Dim sMatch As Boolean = myString Like "num[i-m]"
Beachten Sie, dass bei diesem Abgleich die Groß-/Kleinschreibung beachtet wird.
Abgleichen leerer Zeichenfolgen
Like
behandelt die Sequenz []
als Zeichenfolge der Länge Null (""
). Sie können []
verwenden, um zu testen, ob der gesamte Zeichenfolgenausdruck leer ist, aber Sie können damit nicht testen, ob eine bestimmte Position im Zeichenfolgenausdruck leer ist. Wenn eine leere Position eine der Optionen ist, auf die Sie testen müssen, können Sie Like
mehr als einmal verwenden.
So gleichen Sie ein Zeichen im Zeichenfolgenausdruck mit einer Liste von Zeichen oder keinem Zeichen ab
Rufen Sie den
Like
-Operator zweimal für denselben Zeichenfolgenausdruck auf, und verbinden Sie die beiden Aufrufe entweder mit dem Or-Operator oder mit dem OrElse-Operator.Fügen Sie in die Musterzeichenfolge als erste
Like
-Klausel die Zeichenliste ein, die in eckige Klammern ([ ]
) eingeschlossen ist.Fügen Sie in der Musterzeichenfolge für die zweite
Like
-Klausel kein Zeichen an der betreffenden Position ein.Im folgenden Beispiel wird die siebenstellige Telefonnummer
phoneNum
auf genau drei numerische Ziffern getestet, gefolgt von einem Leerzeichen, einem Bindestrich (–
), einem Punkt (.
) oder gar keinem Zeichen, gefolgt von genau vier numerischen Ziffern.Dim sMatch As Boolean = (phoneNum Like "###[ -.]####") OrElse (phoneNum Like "#######")