Sdílet prostřednictvím


Jako operátor (Visual Basic)

Porovná řetězec proti vzorek.

result = string Like pattern

Části

  • result
    Povinné.Všechny Boolean proměnné.Výsledkem je Boolean hodnotu určující, zda string splňuje pattern.

  • string
    Povinné.Všechny String výraz.

  • pattern
    Povinné.Všechny String pojmu úmluv porovnávání podle "Poznámky".

Poznámky

Pokud hodnota v string splňuje vzorek obsažené v pattern, result je True.Řetězec vzorku, nesplňuje-li result je False.Pokud oba string a pattern jsou prázdné řetězce výsledek je True.

Metoda porovnání

Chování Like operátor závisí Možnost porovnat prohlášení.Výchozí metoda porovnání řetězce pro každý zdrojový soubor je Option Compare Binary.

Možnosti vzorek

Vestavěné porovnávání vzorků představuje univerzální nástroj pro porovnávání řetězců.Funkce porovnávání umožňují každého znaku v string proti určitým znakem, zástupný znak, seznam znaků nebo rozsah znaků.Následující tabulka uvádí znaky v pattern a jejich shodu.

Znaky vpattern

Odpovídástring

?

Libovolný znak

*

Nula nebo více znaků

#

Libovolná číslice (0-9)

[charlist]

Libovolný znak vcharlist

[!charlist]

Jakýkoli znak není vcharlist

Znak seznamy

Skupina jednoho nebo více znaků (charlist) v závorkách ([ ]) lze nahradit jeden znak v string a může obsahovat téměř jakýkoli kód znaku včetně číslic.

Vykřičník (!) na začátku charlist znamená, že shoda je provedena, pokud libovolný znak kromě znaků v charlist ve string.Při použití vně závorek, vykřičník odpovídá sám.

Speciální znaky

Odpovídající levá závorka speciální znaky ([), otazník (?), znaménko čísla (#) a hvězdička (*), uzavřete je do hranatých závorek.Pravá hranatá závorka (]) nelze použít v rámci skupiny tak, aby odpovídala, ale lze je použít mimo skupinu jako samostatný znak.

Posloupnost znaků [] je považováno za řetězec nulové délky ("").Nelze však část seznamu znaků v závorkách.Chcete-li zkontrolovat, zda pozice v string obsahuje jednu skupinu znaků nebo žádný znak vůbec, můžete použít Like dvakrát.Příklad naleznete v tématu Jak: hledat řetězec proti vzorek (Visual Basic).

Rozsahy znaků

Pomocí pomlčky (–) do samostatných dolní a horní hranicí rozsahu charlist můžete určit rozsah znaků.Například [A–Z] výsledkem shoda, pokud znaku odpovídá umístění v string obsahuje libovolný znak v rozsahu A–Z, a [!H–L] výsledkem odpovídající znak na odpovídající pozici obsahuje jakýkoli znak mimo oblast H–L.

Pokud určíte rozsah znaků, musí být zobrazeny ve vzestupném pořadí, od nejnižší k nejvyšší.Proto [A–Z] je platný vzor, ale [Z–A] není.

swf8kaxw.collapse_all(cs-cz,VS.110).gifVíce rozsahy znaků

Chcete-li zadat více rozsahů pro stejné pozice znaku, umístěte je do stejné hranatých závorek bez oddělovačů.Například [A–CX–Z] výsledkem shoda, pokud znaku odpovídá umístění v string obsahuje libovolný znak v rozsahu buď A–C nebo rozsah X–Z.

swf8kaxw.collapse_all(cs-cz,VS.110).gifVyužití pomlčka

Pomlčka (–) se mohou objevit na začátku (po vykřičník, pokud existuje) nebo na konci charlist tak, aby odpovídala sám.V umístění určuje pomlčka rozsah znaků, které jsou odděleny znaky na obou stranách pomlčka.

Pořadí řazení

Význam určený rozsah závisí na znak v době spuštění podle pořadí OptionCompare a nastavení národního prostředí systému je spuštěn kód.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.Oblast neshoduje s Ê nebo ê protože znaky s diakritikou kompletování po znaky bez diakritiky v pořadí řazení.

Spřežka znaků

V některých jazycích jsou znaky abecedy, které představují dva samostatné znaky.Například několik jazyků použijte znak æ představující znaky a a e Jakmile se zobrazí pohromadě.Like Operátor rozpozná spřežka jeden znak a dva jednotlivé znaky jsou ekvivalentní.

Když je jazyk, který používá znak spřežka podle nastavení národního prostředí systému, výskyt spřežka jeden znak v obou pattern nebo string odpovídá odpovídající pořadí dvou znaků v jiný řetězec.Podobně spřežka znak v pattern v závorkách (sám v seznamu nebo v oblasti) odpovídá odpovídající pořadí dvou znaků v string.

Přetěžování

Like Operátor může být přetížení, což znamená, že třídy nebo struktury předefinovat své chování při operand je typu třídy nebo struktury.Pokud váš kód používá tento operátor na tyto třídy nebo struktury, přesvědčete se, že pochopit jeho předefinovaná chování.Další informace naleznete v tématu Operátor postupy (Visual Basic).

Příklad

V tomto příkladu Like operátor porovnání řetězců různých vzorů.Výsledky přejít do Boolean proměnné označující, zda každý řetězec splňuje vzorek.

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

Viz také

Úkoly

Jak: hledat řetězec proti vzorek (Visual Basic)

Referenční dokumentace

Operátory porovnání (Visual Basic)

InStr

Priority operátorů v jazyce Visual Basic

Operátory uvedené podle funkcí (Visual Basic)

Možnost porovnat prohlášení

StrComp

Koncepty

Operátory a výrazy v jazyce Visual Basic