Dela via


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, Celler 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, kl, , meller 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

  1. Anropa operatorn Like två gånger på samma stränguttryck och anslut de två anropen med antingen Operatorn Eller eller OrElse-operatorn.

  2. I mönstersträngen för den första Like satsen inkluderar du teckenlistan, omgiven inom hakparenteser ([ ]).

  3. 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 "#######")
    

Se även