Anvisningar: Matcha en sträng mot ett mönster (Visual Basic)
Om du vill ta reda på om ett uttryck för strängdatatypen uppfyller ett mönster kan du använda like-operatorn.
Like
tar två operander. Den vänstra operanden är ett stränguttryck och den högra operanden är en sträng som innehåller det mönster som ska användas för matchning. Like
returnerar ett Boolean
värde som anger om stränguttrycket uppfyller mönstret.
Du kan matcha varje tecken i stränguttrycket mot ett visst tecken, ett jokertecken, en teckenlista eller ett teckenintervall. Positionerna för specifikationerna i mönstersträngen motsvarar positionerna för de tecken som ska matchas i stränguttrycket.
Så här matchar du ett tecken i stränguttrycket mot ett visst tecken
Placera det specifika tecknet direkt i mönstersträngen. Vissa specialtecken måste omges av hakparenteser ([ ]
). Mer information finns i Like Operator (Gilla operator).
I följande exempel testas om myString
består exakt av det enskilda tecknet H
.
Dim sMatch As Boolean = myString Like "H"
Så här matchar du ett tecken i stränguttrycket mot ett jokertecken
Placera ett frågetecken (?
) i mönstersträngen. Alla giltiga tecken i den här positionen gör en lyckad matchning.
I följande exempel testas om myString
består av det enskilda tecknet W
följt av exakt två tecken av alla värden.
Dim sMatch As Boolean = myString Like "W??"
Så här matchar du ett tecken i stränguttrycket mot en lista med tecken
Placera hakparenteser ([ ]
) i mönstersträngen och placera teckenlistan inom hakparenteserna. Avgränsa inte tecknen med kommatecken eller någon annan avgränsare. Alla enskilda tecken i listan gör en lyckad matchning.
I följande exempel testas om myString
består av ett giltigt tecken följt av exakt ett av tecknen A
, C
eller E
.
Dim sMatch As Boolean = myString Like "?[ACE]"
Observera att den här matchning är skiftlägeskänslig.
Så här matchar du ett tecken i stränguttrycket mot ett teckenintervall
Placera hakparenteser ([ ]
) i mönstersträngen, och inom hakparenteserna placeras de lägsta och högsta tecknen i intervallet, avgränsade med ett bindestreck (–
). Alla enskilda tecken inom intervallet gör en lyckad matchning.
I följande exempel testas om myString
består av tecknen num
följt av exakt ett av tecknen i
, , j
, k
l
, , m
eller n
.
Dim sMatch As Boolean = myString Like "num[i-m]"
Observera att den här matchning är skiftlägeskänslig.
Matchande tomma strängar
Like
behandlar sekvensen []
som en sträng med noll längd (""
). Du kan använda []
för att testa om hela stränguttrycket är tomt, men du kan inte använda det för att testa om en viss position i stränguttrycket är tom. Om en tom position är ett av de alternativ som du behöver testa för kan du använda Like
mer än en gång.
Så här matchar du ett tecken i stränguttrycket mot en lista med tecken eller inget tecken
Anropa operatorn
Like
två gånger på samma stränguttryck och anslut de två anropen med antingen Operatorn Eller eller OrElse-operatorn.I mönstersträngen för den första
Like
satsen inkluderar du teckenlistan, omgiven inom hakparenteser ([ ]
).I mönstersträngen för den andra
Like
satsen ska du inte placera något tecken på den aktuella positionen.I följande exempel testas det sjusiffriga telefonnumret
phoneNum
för exakt tre numeriska siffror, följt av ett blanksteg, ett bindestreck (–
), en punkt (.
) eller inget tecken alls, följt av exakt fyra numeriska siffror.Dim sMatch As Boolean = (phoneNum Like "###[ -.]####") OrElse (phoneNum Like "#######")