Q : Comment tester une chaîne de caractères avec une expression régulière ?

R :

Il faut pour cela utiliser l'objet RegExp qui va permettre de valider une chaîne de caractères en fonction d'un pattern :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Set RegularExpressionObject = New RegExp
Ensuite, il faut le paramétrer en fonction de la recherche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
With RegularExpressionObject
 .Pattern = pattern
 .IgnoreCase = boolean
End With
La pattern est l'expression régulière et IgnoreCase permet d'indiquer s'il faut prendre en compte ou non la casse.

Ensuite, une fois l'objet paramétré, il suffit d'utiliser la méthode Test avec la chaîne à tester en paramètre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
RegularExpressionObject.Test(aTester)
Cette méthode va nous renvoyer True ou False en fonction du résultat.

Voiici par exemple, la méthode pour valider une adresse IP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Set RegularExpressionObject = New RegExp
 
With RegularExpressionObject
 .Pattern = "^((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d)$"
 .IgnoreCase = False
End With
 
MsgBox RegularExpressionObject.Test("172.16.18.21")
MsgBox RegularExpressionObject.Test("300.22.194.37")
Ce qui nous retourne true pour la première chaîne et False pour la seconde.