Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Compare une chaîne à un modèle.
Important
L’opérateur Like
n’est actuellement pas pris en charge dans les projets .NET Core et .NET Standard.
Syntaxe
result = string Like pattern
Pièces
result
Obligatoire. Toute Boolean
variable. Le résultat est une Boolean
valeur indiquant si l’objet string
satisfait ou non le pattern
.
string
Obligatoire. Toute String
expression.
pattern
Obligatoire. Toute String
expression conforme aux conventions de correspondance de modèle décrites dans « Remarques ».
Remarques
Si la valeur en string
satisfait au modèle contenu dans pattern
, result
est True
. Si la chaîne ne satisfait pas le modèle, result
est False
. Si les deux string
chaînes et pattern
sont vides, le résultat est True
.
Méthode de comparaison
Le comportement de l’opérateur Like
dépend de l’instruction Option Compare. La méthode de comparaison de chaînes par défaut pour chaque fichier source est Option Compare Binary
.
Options de modèle
Les critères spéciaux intégrés offrent un outil polyvalent pour les comparaisons de chaînes. Les fonctionnalités de critères spéciaux vous permettent de faire correspondre chaque caractère dans string
à un caractère spécifique, un caractère générique, une liste de caractères ou une plage de caractères. Le tableau suivant indique les caractères autorisés dans pattern
et leur correspondance.
Caractères dans pattern |
Correspondances dans string |
---|---|
? |
Tout caractère unique |
* |
Zéro ou plusieurs caractères |
# |
N’importe quel chiffre (0 à 9) |
[charlist] |
N’importe quel caractère unique dans charlist |
[!charlist] |
N’importe quel caractère unique qui n’est pas dans charlist |
Listes de caractères
Un groupe d’un ou plusieurs caractèrescharlist
() placés entre crochets ([ ]
) peut être utilisé pour faire correspondre n’importe quel caractère string
unique et peut inclure presque n’importe quel code de caractère, y compris les chiffres.
Un point d’exclamation (!
) au début de charlist
signifie qu’une correspondance est effectuée si un caractère à l’exception des caractères présents charlist
est trouvé dans string
. Lorsqu’il est utilisé entre crochets extérieurs, le point d’exclamation correspond à lui-même.
Caractères spéciaux
Pour faire correspondre les caractères[
spéciaux entre crochets (), point d’interrogation (?
), signe numérique (#
) et astérisque (*
), placez-les entre crochets. Le crochet droit (]
) ne peut pas être utilisé dans un groupe pour correspondre lui-même, mais il peut être utilisé en dehors d’un groupe comme caractère individuel.
La séquence []
de caractères est considérée comme une chaîne de longueur nulle (""
). Toutefois, elle ne peut pas faire partie d’une liste de caractères entre crochets. Si vous souhaitez vérifier si une position dans string
contient un groupe de caractères ou aucun caractère du tout, vous pouvez utiliser Like
deux fois. Pour obtenir un exemple, consultez Comment : faire correspondre une chaîne à un modèle.
Plages de caractères
En utilisant un trait d’union (–
) pour séparer les limites inférieures et supérieures de la plage, charlist
peut spécifier une plage de caractères. Par exemple, [A–Z]
génère une correspondance si la position de caractère correspondante contient string
un caractère dans la plage A
Z
, et [!H–L]
génère une correspondance si la position de caractère correspondante contient n’importe quel caractère en dehors de la plage H
.L
Lorsque vous spécifiez une plage de caractères, ils doivent apparaître dans l’ordre de tri croissant, c’est-à-dire, du plus bas au plus élevé. Ainsi, [A–Z]
est un modèle valide, mais [Z–A]
n’est pas.
Plages de caractères multiples
Pour spécifier plusieurs plages pour la même position de caractère, placez-les entre crochets sans délimiteurs. Par exemple, [A–CX–Z]
une correspondance se produit si la position string
de caractère correspondante contient un caractère dans la plage A
(C
ou la plage X
).Z
Utilisation du trait d’union
Un trait d’union (–
) peut apparaître au début (après un point d’exclamation, le cas échéant) ou à la fin de charlist
la correspondance elle-même. Dans tout autre emplacement, le trait d’union identifie une plage de caractères délimitée par les caractères de chaque côté du trait d’union.
Séquence de classement
La signification d’une plage spécifiée dépend de l’ordre des caractères au moment de l’exécution, comme déterminé par Option Compare
et le paramètre de paramètres régionaux du système sur lequel le code s’exécute. Avec Option Compare Binary
, la plage [A–E]
correspond A
, B
C
, , D
, et E
. Avec Option Compare Text
, correspondances [A–E]
A
, À
a
, à
C
b
B
D
d
c
E
et .e
La plage ne correspond Ê
pas ou ê
parce que les caractères accentués sont rassemblés après les caractères nonaccentés dans l’ordre de tri.
Caractères digraphiques
Dans certaines langues, il existe des caractères alphabétiques qui représentent deux caractères distincts. Par exemple, plusieurs langues utilisent le caractère æ
pour représenter les caractères a
et e
lorsqu’ils apparaissent ensemble. L’opérateur Like
reconnaît que le caractère digraphe unique et les deux caractères individuels sont équivalents.
Lorsqu’une langue qui utilise un caractère digraphe est spécifiée dans les paramètres régionaux système, une occurrence du caractère digraphe unique dans l’une ou string
l’autre pattern
correspond à la séquence à deux caractères équivalente dans l’autre chaîne. De même, un caractère pattern
digraphe entre crochets (par lui-même, dans une liste ou dans une plage) correspond à la séquence à deux caractères équivalente en string
.
Surcharge
L’opérateur Like
peut être surchargé, ce qui signifie qu’une classe ou une structure peut redéfinir son comportement lorsqu’un opérande a le type de cette classe ou structure. Si votre code utilise cet opérateur sur une telle classe ou structure, veillez à comprendre son comportement redéfini. Pour plus d’informations, consultez Procédures d’opérateur.
Exemple :
Cet exemple utilise l’opérateur Like
pour comparer des chaînes à différents modèles. Les résultats entrent dans une Boolean
variable indiquant si chaque chaîne satisfait au modèle.
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*"