Like, opérateur
Permet de comparer deux chaînes.
Syntaxe
result = string Like pattern
La syntaxe de l'opérateur Like comprend les éléments suivants :
Élément Description
result Toute variable numérique.
string Toute expression de chaîne.
pattern Toute expression de chaîne respectant les conventions décrites dans les remarques.
Remarques
Si l'argument string correspond à l'argument pattern, l'argument result a pour valeur True. Dans le cas contraire, l'argument result est False. Si les arguments string ou pattern sont Null, l'argument result est Null.
Le comportement de l'opérateur Like dépend de l'instruction Option Compare. Par défaut, la méthode de comparaison de chaînes de chaque module est Option Compare Binary.
La méthode Option Compare Binary compare des chaînes en fonction d'un ordre de tri dérivé de la représentation binaire interne des caractères. L'ordre de tri est défini par la page de code. L'exemple suivant présente un ordre de tri binaire courant :
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
La méthode Option Compare Text compare des chaînes sans prise en compte de la casse, en fonction d'un ordre de tri textuel défini par les paramètres régionaux de votre système. Avec la méthode Option Compare Text, les caractères de l'exemple précédent sont triés de la manière suivante :
(A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)
La gestion intégrée des critères spéciaux permet une grande souplesse dans les comparaisons de chaînes. Vous pouvez en effet utiliser des caractères génériques, des listes de caractères ou des plages de caractères, combinés à votre gré, pour comparer des chaînes. Le tableau suivant définit les caractères autorisés dans l'argument pattern et leur correspondance :
Caractère(s) dans pattern Correspondance dans l'argument string
? Tout caractère unique.
* Aucun ou plusieurs caractères.
# Tout chiffre unique (de 0 à 9).
[charlist] Tout caractère unique compris dans l'argument charlist.
[!charlist] Tout caractère unique non compris dans l'argument charlist.
Un groupe d'un ou plusieurs caractères (argument charlist) délimité par des crochets ([ ]) permet de sélectionner tout caractère unique de l'argument string ; il peut comporter quasiment n'importe quel code de caractère, y compris des chiffres.
Note Pour utiliser les caractères spéciaux tels que le crochet droit ouvrant ([), le point d'interrogation (?), le dièse (#) et l'astérisque (*), entourez-les de crochets. Le crochet droit fermant (]) ne peut être utilisé au sein d'un groupe comme critère de comparaison. En revanche, il peut être utilisé à l'extérieur d'un groupe, comme caractère isolé.
L'argument charlist peut spécifier une plage de caractères dont les limites supérieure et inférieure sont séparées par un trait d'union (–). Par exemple, la chaîne [A-Z] génère une correspondance si l'argument string contient à la même position une lettre majuscule comprise entre A et Z. Plusieurs plages peuvent figurer entre crochets sans être délimitées entre elles.
La signification d'une plage dépend de l'ordre des caractères en vigueur au moment de l'exécution ; il est déterminé par l'instruction Option Compare et les paramètres régionaux du système sur lequel le code est exécuté. Si l'on reprend l'exemple précédent avec la méthode Option Compare Binary, la plage [A–E] correspond à A, B et E. Avec Option Compare Text, la plage [A–E] correspond à A, a, À, à, B, b, E, e. La plage ne correspond ni à Ê, ni à ê, car les caractères accentués viennent après les caractères non accentués dans l'ordre de tri.
Les autres règles importantes qui régissent l'utilisation de critères spéciaux sont les suivantes :
Un point d'exclamation (!) placé au début de l'argument charlist signifie que la correspondance est uniquement établie si l'argument string ne contient aucun des caractères de l'argument charlist. Utilisé hors des crochets droits, le point d'exclamation correspond à lui-même.
Le trait d'union (–) peut apparaître soit au début (éventuellement à la suite d'un point d'exclamation), soit à la fin de l'argument charlist pour correspondre à lui-même. En tout autre emplacement, le trait d'union sert à désigner une plage de caractères.
Lorsqu'une plage de caractères est définie, les caractères doivent apparaître dans l'ordre ascendant (du premier au dernier). [A-Z] correspond à une plage valable, contrairement à [Z-A].
La séquence de caractères [] est considérée comme une chaîne de longueur nulle ("").
Dans certaines langues, l'alphabet comporte des caractères spéciaux représentant 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 ce caractère spécial équivaut à deux caractères.
Quand une langue utilisant un de ces caractères spéciaux est définie dans les paramètres régionaux du système, toute occurrence du caractère spécial dans les arguments pattern ou string correspond à la séquence de deux caractères équivalente dans l'autre chaîne. De même, un caractère spécial placé entre crochets droits (seul, dans une liste ou dans une plage) dans l'argument pattern correspond à la séquence de deux caractères équivalente dans l'argument string.
Partager