Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Confronta una stringa con un criterio.
Importante
L'operatore Like non è attualmente supportato nei progetti .NET Core e .NET Standard.
Sintassi
result = string Like pattern
Parti
result
Obbligatorio. Qualsiasi Boolean variabile. Il risultato è un Boolean valore che indica se l'oggetto soddisfa o meno l'oggetto stringpattern.
string
Obbligatorio. Qualsiasi String espressione.
pattern
Obbligatorio. Qualsiasi String espressione conforme alle convenzioni di criteri di ricerca descritte in "Osservazioni".
Osservazioni:
Se il valore in string soddisfa il criterio contenuto in pattern, result è True. Se la stringa non soddisfa il criterio, result è False. Se e stringpattern sono stringhe vuote, il risultato è True.
Comparison, metodo
Il comportamento dell'operatore Like dipende dall'istruzione Option Compare. Il metodo di confronto delle stringhe predefinito per ogni file di origine è Option Compare Binary.
Opzioni modello
I criteri di ricerca predefiniti offrono uno strumento versatile per i confronti tra stringhe. Le funzionalità di corrispondenza dei criteri consentono di trovare la corrispondenza di ogni carattere in string rispetto a un carattere specifico, a un carattere jolly, a un elenco di caratteri o a un intervallo di caratteri. Nella tabella seguente vengono illustrati i caratteri consentiti in pattern e le corrispondenze.
Caratteri in pattern |
Corrispondenze in string |
|---|---|
? |
Qualsiasi carattere singolo |
* |
Zero o più caratteri |
# |
Qualsiasi cifra singola (0-9) |
[charlist] |
Qualsiasi carattere singolo in charlist |
[!charlist] |
Qualsiasi carattere singolo non in charlist |
Elenchi di caratteri
Un gruppo di uno o più caratteri (charlist) racchiusi tra parentesi quadre ([ ]) può essere usato per trovare la corrispondenza con qualsiasi singolo carattere in string e può includere quasi qualsiasi codice carattere, incluse le cifre.
Un punto esclamativo (!) all'inizio di charlist indica che viene eseguita una corrispondenza se qualsiasi carattere tranne i caratteri in charlist viene trovato in string. Se utilizzato tra parentesi quadre esterne, il punto esclamativo corrisponde a se stesso.
Caratteri speciali
Per trovare la corrispondenza con i caratteri speciali tra parentesi quadre ([), punto interrogativo (?), segno di numero (#) e asterisco (*), racchiuderli tra parentesi quadre. La parentesi quadra destra (]) non può essere usata all'interno di un gruppo per trovare la corrispondenza, ma può essere usata all'esterno di un gruppo come singolo carattere.
La sequenza [] di caratteri è considerata una stringa di lunghezza zero (""). Tuttavia, non può far parte di un elenco di caratteri racchiuso tra parentesi quadre. Se si desidera verificare se una posizione in string contiene uno di un gruppo di caratteri o nessun carattere, è possibile usare Like due volte. Per un esempio, vedere Procedura: Associare una stringa a un criterio.
Intervalli di caratteri
Usando un trattino (–) per separare i limiti inferiori e superiori dell'intervallo, charlist è possibile specificare un intervallo di caratteri. Ad esempio, restituisce [A–Z] una corrispondenza se la posizione del carattere corrispondente in string contiene qualsiasi carattere compreso nell'intervallo –Z e [!H–L] restituisce una corrispondenza se la posizione del carattere corrispondente contiene qualsiasi carattere al di fuori dell'intervallo AH–L.
Quando si specifica un intervallo di caratteri, questi devono essere visualizzati in ordine crescente, ovvero dal più basso al più alto. Pertanto, [A–Z] è un modello valido, ma [Z–A] non lo è.
Intervalli di caratteri multipli
Per specificare più intervalli per la stessa posizione dei caratteri, inserirli all'interno delle stesse parentesi quadre senza delimitatori. Ad esempio, restituisce [A–CX–Z] una corrispondenza se la posizione del carattere corrispondente in string contiene qualsiasi carattere all'interno dell'intervallo ,C o l'intervallo AX-Z .
Utilizzo del trattino
Un trattino (–) può essere visualizzato all'inizio (dopo un punto esclamativo, se presente) o alla fine di charlist per corrispondere a se stesso. In qualsiasi altra posizione, il trattino identifica un intervallo di caratteri delimitato dai caratteri su entrambi i lati del trattino.
Sequenza di confronto
Il significato di un intervallo specificato dipende dall'ordinamento dei caratteri in fase di esecuzione, come determinato dall'impostazione Option Compare delle impostazioni locali del sistema in cui è in esecuzione il codice. Con Option Compare Binary, l'intervallo [A–E] corrisponde a A, BC, D, e E. Con Option Compare Text, [A–E] corrisponde Aa , ÀàaB, b, C, DdcEe .e L'intervallo non corrisponde Ê o ê perché i caratteri accentati vengono compressi dopo caratteri non accentati nell'ordinamento.
Caratteri digrafi
In alcune lingue sono presenti caratteri alfabetici che rappresentano due caratteri separati. Ad esempio, diverse lingue usano il carattere æ per rappresentare i caratteri a e e quando vengono visualizzati insieme. L'operatore Like riconosce che il singolo carattere digrafo e i due singoli caratteri sono equivalenti.
Quando viene specificata una lingua che utilizza un carattere digrafo nelle impostazioni locali di sistema, un'occorrenza del carattere digrafo singolo in pattern o string corrisponde alla sequenza di due caratteri equivalente nell'altra stringa. Analogamente, un carattere digrafo racchiuso pattern tra parentesi quadre (da solo, in un elenco o in un intervallo) corrisponde alla sequenza di due caratteri equivalente in string.
Sovraccarico
L'operatore Like può essere sottoposto a overload, il che significa che una classe o una struttura può ridefinirne il comportamento quando un operando ha il tipo di tale classe o struttura. Se il codice usa questo operatore in una classe o una struttura di questo tipo, assicurarsi di comprenderne il comportamento ridefinito. Per altre informazioni, vedere Operator Procedures.
Esempio
In questo esempio viene usato l'operatore Like per confrontare le stringhe con vari modelli. I risultati vengono inseriti in una Boolean variabile che indica se ogni stringa soddisfa il criterio.
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*"