Udostępnij za pośrednictwem


Like — Operator (Visual Basic)

Porównuje ciąg przeciwko wzorek.

result = string Like pattern

Części

  • result
    Wymagane.Każdy Boolean zmienna.Wynik jest Boolean wartość wskazującą, czy też nie string spełnia pattern.

  • string
    Wymagane.Każdy String wyrażenie.

  • pattern
    Wymagane.Każdy String wyrażeń zgodnych z konwencjami dopasowania do wzorca, opisanych w "Uwagi".

Uwagi

Jeśli wartość w string spełnia deseń, zawartych w pattern, result jest True.Jeśli ciąg nie spełnia deseń, result jest False.Jeśli oba string i pattern są puste ciągi, wynik jest True.

Metoda porównawcza

Zachowanie Like zależy od operatora Option Compare — Instrukcja.Domyślną metodą porównanie ciągu dla każdego pliku źródłowego jest Option Compare Binary.

Opcje wzorca

Dopasowywania do wzorca wbudowanych stanowią wszechstronne narzędzie do porównywania ciągów znaków.Funkcje dopasowania do wzorca pozwalają dopasować każdy znak w string przeciwko specyficznego charakteru, symbol wieloznaczny, lista znaków lub zakres znaków.W poniższej tabeli przedstawiono znaki dopuszczalne w pattern i są ze sobą zgodne.

Znaki wpattern

Dopasowania wstring

?

Dowolny pojedynczy znak

*

Zero lub więcej znaków

#

Dowolna cyfra (0–9)

[charlist]

Dowolny pojedynczy znak wcharlist

[!charlist]

Dowolny pojedynczy znak niecharlist

List znaków

Grupy z jednego lub więcej znaków (charlist) w nawiasach ([ ]) może służyć do dowolnego pojedynczego znaku w string i może zawierać niemal każdy kod znaku, w tym cyfry.

Wykrzyknik (!) na początku charlist oznacza, że zgodność ma miejsce, jeśli dowolny znak z wyjątkiem znaków w charlist znajduje się w string.Gdy jest używany poza nawiasem kwadratowym, wykrzyknik odpowiadają samym sobie.

Znaki specjalne

Odpowiadać lewy nawias kwadratowy znaków specjalnych ([), znak zapytania (?), znak numeru (#) i gwiazdki (*), należy je ująć w nawiasy.Prawy nawias kwadratowy (]) nie można używać wewnątrz grupy porównywany, ale mogą być używane poza grupę jako indywidualny charakter.

Sekwencja znaków [] jest traktowana jako ciąg o zerowej długości ("").Jednakże nie może to być część listy znaków ujęty w nawiasy.Jeśli chcesz sprawdzić, czy pozycja w string zawiera jeden z grupy znaków lub żaden znak w ogóle, można użyć Like dwa razy.Na przykład, zobacz Porady: dopasowywanie ciągu do wzorca (Visual Basic).

Zakresy znaków

Za pomocą dywizu (–) aby oddzielić dolną i górną granicę zakresu, charlist można określić zakres znaków.Na przykład [A–Z] wyników w meczu, jeśli odpowiedni znak, umieść w string zawiera dowolny znak w zakresie A–Z, i [!H–L] wyników w meczu, jeśli odpowiadające im pozycji znaku zawiera dowolny znak poza zakresem H–L.

Podczas określania zakresu znaków musi są wyświetlane w kolejności rosnącej, to znaczy od najniższego do najwyższego.W ten sposób [A–Z] jest prawidłowa dla wzorca, lecz [Z–A] nie jest.

Wiele zakresów znaków

Aby określić wiele zakresów dla tej samej pozycji znaku, umieść je w tym samym nawiasach bez ograniczników.Na przykład [A–CX–Z] wyników w meczu, jeśli odpowiedni znak, umieść w string zawiera dowolny znak, albo do zakresu A–C lub zakres X–Z.

Użycie łącznik

Łącznik (–) mogą być wyświetlane na początku (po wykrzyknika, jeśli istnieje) lub na końcu charlist porównywany.W innym miejscu łącznik określa zakres znaków tekstu rozdzielanego znakami po obu stronach łącznika.

Sekwencja sortowania

Znaczenie określonego zakresu zależy od znaku, zamawiania w czasie wykonywania, określone przez OptionCompare i kod ustawień regionalnych systemu jest uruchomiona na.With OptionCompareBinary, the range [A–E] matches A, B, C, D, and E.With OptionCompareText, [A–E] matches A, a, À, à, B, b, C, c, D, d, E, and e.Zakres nie odpowiada Ê lub ê , ponieważ znaki akcentowane zestawia po nieakcentowane znaków w porządku sortowania.

Znaki dwuznak

Niektóre języki są znaki alfabetu, które reprezentują dwa osobne znaki.Na przykład używać znaku w kilku językach æ do reprezentowania znaków a i e kiedy występują one razem.Like Operator rozpoznaje znaków pojedynczego digraph i dwóch pojedynczych znaków są równoważne.

Gdy język, który używa znaku digraph jest określona w ustawieniach regionalnych systemu, wystąpienie znaku pojedynczego digraph w albo pattern lub string odpowiada równoważne sekwencji dwóch znaków w innym ciągu.Podobnie, znak digraph w pattern w nawiasach (przez siebie, na liście lub w zakresie) odpowiada równoważne kolejność dwóch znaków w string.

Przeciążenie

Like Operator może być nadmiernie, co oznacza, że klasy lub struktury można ponownie zdefiniować jego zachowanie podczas operand ma typ tej klasy lub struktury.Jeśli użyty kod używa tego operatora na klasy lub struktury, upewnij się, że rozumiesz działanie przedefiniować.Aby uzyskać więcej informacji, zobacz Procedury operatorów (Visual Basic).

Przykład

W tym przykładzie użyto Like operatora do porównywania ciągów znaków do różnych wzorców.Wyniki są kierowane do Boolean zmienna wskazującą, czy każdy ciąg spełnia deseń.

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*"

Zobacz też

Zadania

Porady: dopasowywanie ciągu do wzorca (Visual Basic)

Informacje

Operatory porównania (Visual Basic)

InStr

Kolejność wykonywania działań (Visual Basic)

Operatory według funkcji (Visual Basic)

Option Compare — Instrukcja

StrComp

Koncepcje

Operatory i wyrażenia w Visual Basic