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
Chiamare due volte l'operatore
Like
sulla stessa espressione stringa e connettere le due chiamate con l'Operatore Or o l'Operatore OrElse.Per la prima clausola
Like
nella stringa del criterio includere l'elenco di caratteri, racchiuso tra parentesi quadre ([ ]
).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 "#######")