Kennen Sie die Länge des Teilstrings, den Sie finden möchten?
Blackhawk
Antworten:
140
Es gibt verschiedene Möglichkeiten, dies zu tun:
InStr
Mit der integrierten InStrFunktion können Sie testen, ob ein String einen Teilstring enthält. InStrgibt entweder den Index der ersten Übereinstimmung oder 0 zurück. Sie können also testen, ob ein String mit einem Teilstring beginnt, indem Sie Folgendes tun:
If InStr(1, "Hello World", "Hello W") = 1Then
MsgBox "Yep, this string begins with Hello W!"EndIf
Wenn InStrzurückgegeben 1wird, beginnt der String ("Hello World") mit dem Teilstring ("Hello W").
Mögen
Sie können den likeVergleichsoperator auch zusammen mit einigen grundlegenden Mustervergleichen verwenden:
If"Hello World"Like"Hello W*"Then
MsgBox "Yep, this string begins with Hello W!"EndIf
In diesem Fall verwenden wir ein Sternchen (*), um zu testen, ob der String mit unserer Teilzeichenfolge beginnt.
Dies hat auch den Vorteil, dass es schneller ausgeführt werden kann als die Lösung von armstrhb (seine Lösung ist jedoch einfacher zu lesen und zu codieren).
Dan
... und um zu überprüfen, ob es mit dem Teilstring endet, verwenden Sie Right()stattdessen einfach : Right(str, Len(prefix)) = prefix:-)
Stephen R
1
Sie werden es auch ein teeeeeny Bit unter Verwendung des Mid $ (...) Funktion oder Left $ (...) Funktionen (die das String - Variable erlauben gebenen gerade werden , ohne dass in einer Variante gewickelt wird) beschleunigen
Antworten:
Es gibt verschiedene Möglichkeiten, dies zu tun:
InStr
Mit der integrierten
InStr
Funktion können Sie testen, ob ein String einen Teilstring enthält.InStr
gibt entweder den Index der ersten Übereinstimmung oder 0 zurück. Sie können also testen, ob ein String mit einem Teilstring beginnt, indem Sie Folgendes tun:If InStr(1, "Hello World", "Hello W") = 1 Then MsgBox "Yep, this string begins with Hello W!" End If
Wenn
InStr
zurückgegeben1
wird, beginnt der String ("Hello World") mit dem Teilstring ("Hello W").Mögen
Sie können den
like
Vergleichsoperator auch zusammen mit einigen grundlegenden Mustervergleichen verwenden:If "Hello World" Like "Hello W*" Then MsgBox "Yep, this string begins with Hello W!" End If
In diesem Fall verwenden wir ein Sternchen (*), um zu testen, ob der String mit unserer Teilzeichenfolge beginnt.
quelle
InStr
erledigt den Job, aber es scheint nichtLike
in VBScript zu sein (siehe stackoverflow.com/a/30301238/61508 )Gemessen an der Deklaration und Beschreibung der
startsWith
Java-Funktion wäre der "einfachste Weg", sie in VBA zu implementieren, entwederLeft
:Public Function startsWith(str As String, prefix As String) As Boolean startsWith = Left(str, Len(prefix)) = prefix End Function
Oder, wenn Sie den Offset-Parameter verfügbar haben möchten, mit
Mid
:Public Function startsWith(str As String, prefix As String, Optional toffset As Integer = 0) As Boolean startsWith = Mid(str, toffset + 1, Len(prefix)) = prefix End Function
quelle
Right()
stattdessen einfach :Right(str, Len(prefix)) = prefix
:-)