Procedura: confrontare una stringa con un modello (Visual Basic)

Se si vuole scoprire se un'espressione di Dati di tipo stringa soddisfa un criterio, è possibile usare l'Operatore Like.

Like accetta due operandi. L'operando di sinistra è un'espressione stringa e l'operando di destra è una stringa contenente il criterio da usare per la corrispondenza. Like restituisce un valore Boolean che indica se l'espressione stringa soddisfa il criterio.

È possibile associare ogni carattere nell'espressione stringa a un carattere specifico, a un carattere jolly, a un elenco di caratteri o a un intervallo di caratteri. Le posizioni delle specifiche nella stringa del criterio corrispondono alle posizioni dei caratteri da trovare nell'espressione stringa.

Per trovare la corrispondenza di un carattere nell'espressione stringa rispetto a un carattere specifico

Inserire il carattere specifico direttamente nella stringa del criterio. Alcuni caratteri speciali devono essere racchiusi tra parentesi quadre ([ ]). Per altre informazioni, vedere Operatore Like.

Nell'esempio seguente viene verificato se myString è costituito esattamente dal singolo carattere H.

Dim sMatch As Boolean = myString Like "H"

Per trovare la corrispondenza di un carattere nell'espressione stringa rispetto a un carattere jolly

Inserire un punto interrogativo (?) nella stringa del criterio. Qualsiasi carattere valido in questa posizione restituisce una corrispondenza corretta.

Nell'esempio seguente viene verificato se myString è costituito dal singolo carattere W seguito esattamente da due caratteri di qualsiasi valore.

Dim sMatch As Boolean = myString Like "W??"

Per trovare la corrispondenza di un carattere nell'espressione stringa rispetto a un elenco di caratteri

Inserire parentesi quadre ([ ]) nella stringa del criterio e all'interno delle parentesi quadre inserire l'elenco di caratteri. Non separare i caratteri con virgole o altri separatori. Qualsiasi carattere singolo nell'elenco restituisce una corrispondenza corretta.

Nell'esempio seguente viene verificato se myString è costituito da qualsiasi carattere valido seguito esattamente da uno dei caratteri A, C o E.

Dim sMatch As Boolean = myString Like "?[ACE]"

Si noti che questa corrispondenza applica la distinzione tra maiuscole e minuscole.

Per trovare la corrispondenza di un carattere nell'espressione stringa rispetto a un intervallo di caratteri

Inserire parentesi quadre ([ ]) nella stringa del criterio e all'interno delle parentesi quadre inserire i caratteri più bassi e più alti nell'intervallo, separati da un trattino (). Qualsiasi carattere singolo all'interno dell'intervallo restituisce una corrispondenza corretta.

Nell'esempio seguente viene verificato se myString è costituito dai caratteri num seguiti esattamente da uno dei caratteri i, j, k, l, m o n.

Dim sMatch As Boolean = myString Like "num[i-m]"

Si noti che questa corrispondenza applica la distinzione tra maiuscole e minuscole.

Corrispondenza con stringhe vuote

Like considera la sequenza [] come stringa di lunghezza zero (""). È possibile usare [] per verificare se l'intera espressione stringa è vuota, ma non è possibile usarlo per verificare se una particolare posizione nell'espressione stringa è vuota. Se una posizione vuota è una delle opzioni da testare, è possibile usare Like più volte.

Per trovare la corrispondenza di un carattere nell'espressione stringa rispetto a un elenco di caratteri o a nessun carattere

  1. Chiamare due volte l'operatore Like sulla stessa espressione stringa e connettere le due chiamate con l'Operatore Or o l'Operatore OrElse.

  2. Per la prima clausola Like nella stringa del criterio includere l'elenco di caratteri, racchiuso tra parentesi quadre ([ ]).

  3. Per la seconda clausola Like nella stringa del criterio non inserire alcun carattere nella posizione in questione.

    Nell'esempio seguente viene verificato il numero di telefono a sette cifre phoneNum per ottenere esattamente tre cifre numeriche, seguite da uno spazio, un trattino (), un punto (.) o nessun carattere, seguito da esattamente quattro cifre numeriche.

    Dim sMatch As Boolean = 
      (phoneNum Like "###[ -.]####") OrElse (phoneNum Like "#######")
    

Vedi anche