LIKE

Résolu
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 11 avril 2011 à 00:51
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 12 avril 2011 à 01:21
Bonjour à tous

J'ai un résultat bizarre avec like

Dim str As String
        str = "-3-4"
        If str.Substring(0, 1) Like "[^,*,/,-,+)]" = False Then
            MessageBox.Show("False")
        End If


j'ai le messagebox bien que le premier caractère
est -

par contre si j'ai str = "*3-4"
le messagebox n'apparait pas ce qui est normal

seulement pour - le messagebox apparait
et en verifiant avec le debugger
str.Substring(0, 1) Like "[^,*,/,-,+)]" :false

merci

3 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
12 avril 2011 à 01:21
Ah oui, j'oubliai :
Le symbole - est utilisé dans la syntaxe même des opérateurs Like, par exemple pour désigner un digit numérique : [0-9]
Donc, dans ta syntaxe actuelle, il comprend "de / à +"
Il suffit d'encadrer les symboles spéciaux par des crochets :
Je pense que [^*/[-]+)] serait mieux interprété.
Je n'est pas vérifié, mais ta remarque entre "[-*/^+)]" et "[^*/-+)]" doit venir du fait que les codes Ascii sont décroissant, dans ce cas, il reconnait - comme un caractère et pas comme un "opérateur d'extension" interne.

Le symbole [ ou ] est dans le même cas de figure --> [[] ou []]
3