VB.net vergleichen Sie eine vollständige Zeichenfolge mit Platzhalterzeichen

Habe ich eine Methode, die 2 string-Argumente. Eine, die enthält einen normalen string und enthält einen string mit einem oder mehreren Platzhalterzeichen. Ich habe versucht den folgenden code:

Private Function DoesMatchWildcardString(ByVal fullString As String, ByVal wildcardString As String) As Boolean
    Dim stringParts() As String
    Dim matches As Boolean = True

    stringParts = wildcardString.Split("*")

    For Each str As String In stringParts
        If fullString.Contains(str) = False Then
            matches = False
        End If
    Next

    Return matches

End Function

Dem ich erkannte, dass er nicht mehr richtig funktioniert. Wenn ich ABCD als ein normales und ein* * * CD wie meine wildcard-string-match funktionieren auch, wenn mein normaler string war CDAB, das ist nicht das, was ich will.

Irgendwelche Ideen??

Vielen Dank.

Was sind die möglichen wildcard-Zeichen? Redest du nur * oder mehr vollständige regex-wie *, +, ?, . usw. ?
Momentan bin ich nur mit *
Warum nicht testen Sie jeden Teil der Zeichenkette ein zu einer Zeit? So teilen Sie die wildcard-string Eine*CD in zwei. Testen gegen die ersten Zeichen der normalen string. Dann test-CD gegen das Dritte und vierte Zeichen des normalen string.
In deinem Beispiel scheint es, dass * steht für ein einzelnes Zeichen z.B. A*CD - ist das wahr?
Nein, das * kann stehen für eine beliebige Anzahl von Zeichen.

InformationsquelleAutor PaulG | 2012-05-16

Schreibe einen Kommentar