Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Jämför en sträng med ett mönster.
Viktigt!
Operatorn Like stöds för närvarande inte i .NET Core- och .NET Standard-projekt.
Syntax
result = string Like pattern
Delar
result
Obligatoriskt. Valfri Boolean variabel. Resultatet är ett Boolean värde som anger om uppfyller stringpattern.
string
Obligatoriskt. Alla String uttryck.
pattern
Obligatoriskt. Alla String uttryck som överensstämmer med de mönstermatchningskonventioner som beskrivs i "Kommentarer".
Anmärkningar
Om värdet i string uppfyller mönstret i patternär . resultTrue Om strängen inte uppfyller mönstret result är False. Om både string och pattern är tomma strängar blir Trueresultatet .
Jämförelsemetod
Beteendet för operatorn Like beror på instruktionen Jämförelse av alternativ. Standardmetoden för strängjämförelse för varje källfil är Option Compare Binary.
Mönsteralternativ
Inbyggd mönstermatchning är ett mångsidigt verktyg för strängjämförelser. Med mönstermatchningsfunktionerna kan du matcha varje tecken i string mot ett visst tecken, ett jokertecken, en teckenlista eller ett teckenintervall. I följande tabell visas de tecken som tillåts i pattern och vad de matchar.
Tecken i pattern |
Matchar i string |
|---|---|
? |
Valfritt enskilt tecken |
* |
Noll eller fler tecken |
# |
Alla ensiffriga siffror (0–9) |
[charlist] |
Alla enskilda tecken i charlist |
[!charlist] |
Alla enskilda tecken som inte finns i charlist |
Teckenlistor
En grupp med ett eller flera tecken (charlist) inom hakparenteser ([ ]) kan användas för att matcha ett enskilt tecken i string och kan innehålla nästan vilken teckenkod som helst, inklusive siffror.
Ett utropstecken (!) i början av charlist innebär att en matchning görs om något tecken förutom tecknen i charlist hittas i string. När utropspunkten används utanför hakparenteser matchar den sig själv.
Specialtecken
Om du vill matcha specialtecken vänster hakparentes ([), frågetecken (?), taltecken (#) och asterisk (*), omsluta dem inom hakparenteser. Den högra hakparentesen (]) kan inte användas i en grupp för att matcha sig själv, men den kan användas utanför en grupp som ett enskilt tecken.
Teckensekvensen [] anses vara en sträng med noll längd (""). Det kan dock inte ingå i en teckenlista inom hakparenteser. Om du vill kontrollera om en position i string innehåller ett av en grupp med tecken eller inget tecken alls kan du använda Like två gånger. Ett exempel finns i Så här: Matcha en sträng mot ett mönster.
Teckenintervall
Genom att använda ett bindestreck (–) för att avgränsa intervallets charlist nedre och övre gränser kan du ange ett teckenintervall. Till exempel resulterar [A–Z] det i en matchning om motsvarande teckenposition i string innehåller något tecken inom intervallet A–Z och [!H–L] resulterar i en matchning om motsvarande teckenposition innehåller något tecken utanför intervallet H–L.
När du anger ett teckenintervall måste de visas i stigande sorteringsordning, det vill säga från lägsta till högsta.
[A–Z] Det är alltså ett giltigt mönster, men [Z–A] det är det inte.
Flera teckenintervall
Om du vill ange flera intervall för samma teckenposition placerar du dem inom samma hakparenteser utan avgränsare. Till exempel resulterar [A–CX–Z] det i en matchning om motsvarande teckenposition i string innehåller något tecken inom intervallet A–C eller intervallet X–Z .
Användning av bindestrecket
Ett bindestreck (–) kan visas antingen i början (efter ett utropstecken, om det finns) eller i slutet av charlist för att matcha sig själv. På andra platser identifierar bindestrecket ett intervall med tecken som avgränsas av tecknen på vardera sidan av bindestrecket.
Sorteringssekvens
Innebörden av ett angivet intervall beror på teckenordningen vid körning, vilket bestäms av Option Compare och språkinställningen för systemet som koden körs på. Med Option Compare Binarymatchar Aintervallet [A–E] , B, C, Doch E. Med Option Compare Text, [A–E] matchar A, a, À, à, B, b, C, , c, D, d, Eoch e. Intervallet matchar Ê inte eller ê på grund av att de accenttecken som har samlats in efter oanvända tecken i sorteringsordningen.
Digraph-tecken
På vissa språk finns det alfabetiska tecken som representerar två separata tecken. Flera språk använder till exempel tecknet æ för att representera tecknen a och e när de visas tillsammans. Operatorn Like känner igen att det enskilda digraftecknet och de två enskilda tecknen är likvärdiga.
När ett språk som använder ett digraftecken anges i inställningarna för systemspråket matchar en förekomst av det enskilda digraftecknet i antingen pattern eller string motsvarande tvåteckenssekvens i den andra strängen. På samma sätt matchar ett digraftecken inom pattern hakparenteser (i sig, i en lista eller i ett intervall) motsvarande sekvens med två tecken i string.
Överbelastning
Operatorn Like kan överbelastas, vilket innebär att en klass eller struktur kan omdefiniera sitt beteende när en operande har den typen av klass eller struktur. Om din kod använder den här operatorn i en sådan klass eller struktur bör du se till att du förstår dess omdefinierade beteende. Mer information finns i Operatorprocedurer.
Exempel
I det här exemplet används operatorn Like för att jämföra strängar med olika mönster. Resultaten går till en Boolean variabel som anger om varje sträng uppfyller mönstret.
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*"