Porady: dopasowywanie ciągu do wzorca (Visual Basic)
Jeśli chcesz dowiedzieć się, czy wyrażenie typu danych ciągu spełnia wzorzec, możesz użyć operatora Like.
Like
przyjmuje dwa operandy. Lewy operand jest wyrażeniem ciągu, a prawy operand jest ciągiem zawierającym wzorzec, który ma być używany do dopasowywania. Like
Zwraca wartość wskazującą Boolean
, czy wyrażenie ciągu spełnia wzorzec.
Każdy znak w wyrażeniu ciągu można dopasować do określonego znaku, symbolu wieloznakowego, listy znaków lub zakresu znaków. Pozycje specyfikacji w ciągu wzorca odpowiadają położeniam znaków, które mają być dopasowane w wyrażeniu ciągu.
Aby dopasować znak w wyrażeniu ciągu do określonego znaku
Umieść konkretny znak bezpośrednio w ciągu wzorca. Niektóre znaki specjalne muszą być ujęte w nawiasy kwadratowe ([ ]
). Aby uzyskać więcej informacji, zobacz Jak operator.
Poniższy przykład sprawdza, czy myString
składa się dokładnie z pojedynczego znaku H
.
Dim sMatch As Boolean = myString Like "H"
Aby dopasować znak w wyrażeniu ciągu do symbolu wieloznakowego
Umieść znak zapytania (?
) w ciągu wzorca. Każdy prawidłowy znak w tej pozycji powoduje pomyślne dopasowanie.
Poniższy przykład sprawdza, czy myString
składa się z pojedynczego znaku W
, po którym następują dokładnie dwa znaki dowolnej wartości.
Dim sMatch As Boolean = myString Like "W??"
Aby dopasować znak w wyrażeniu ciągu do listy znaków
Umieść nawiasy kwadratowe ([ ]
) w ciągu wzorca, a wewnątrz nawiasów umieść listę znaków. Nie rozdzielaj znaków przecinkami ani żadnego innego separatora. Każdy pojedynczy znak na liście powoduje pomyślne dopasowanie.
Poniższy przykład sprawdza, czy myString
składa się z dowolnego prawidłowego znaku, po którym następuje dokładnie jeden z znaków A
, C
lub E
.
Dim sMatch As Boolean = myString Like "?[ACE]"
Należy pamiętać, że to dopasowanie uwzględnia wielkość liter.
Aby dopasować znak w wyrażeniu ciągu do zakresu znaków
Umieść nawiasy kwadratowe ([ ]
) w ciągu wzorca, a wewnątrz nawiasów umieść najniższe i najwyższe znaki w zakresie, oddzielone łącznikiem (–
). Każdy pojedynczy znak w zakresie powoduje pomyślne dopasowanie.
Poniższy przykład sprawdza, czy myString
składa się z znakównum
, po których następuje dokładnie jeden z znaków i
, , j
, l
k
, m
lub n
.
Dim sMatch As Boolean = myString Like "num[i-m]"
Należy pamiętać, że to dopasowanie uwzględnia wielkość liter.
Dopasowywanie pustych ciągów
Like
traktuje sekwencję []
jako ciąg o zerowej długości (""
). Możesz użyć []
polecenia , aby sprawdzić, czy całe wyrażenie ciągu jest puste, ale nie można go użyć do przetestowania, czy określona pozycja w wyrażeniu ciągu jest pusta. Jeśli pusta pozycja jest jedną z opcji, które należy przetestować, możesz użyć Like
więcej niż raz.
Aby dopasować znak w wyrażeniu ciągu do listy znaków lub bez znaku
Wywołaj operator dwa razy w tym samym wyrażeniu
Like
ciągu i połącz dwa wywołania za pomocą operatora Or lub Operatora OrElse.W ciągu wzorca dla pierwszej
Like
klauzuli dołącz listę znaków ujętą w nawiasy kwadratowe ([ ]
).W ciągu wzorca drugiej
Like
klauzuli nie umieszczaj żadnego znaku w danej pozycji.Poniższy przykład testuje siedmiocyfrowy numer
phoneNum
telefonu pod kątem dokładnie trzech cyfr, po których następuje spacja, łącznik (), kropka (–
.
) lub żaden znak, po którym następuje dokładnie cztery cyfry liczbowe.Dim sMatch As Boolean = (phoneNum Like "###[ -.]####") OrElse (phoneNum Like "#######")