Bonjour à tous,
Comme l'indique l'intitulé de la discussion, je cherche à simplifier une RegExp.
Tout d'abord j'ai suivi le très bon tutoriel : Les Expressions Rationnelles appliquées en VBA Access
Ma problématique vient de l'utilisation du quantificateur {x} pour répéter des motifs
Avec :
- la chaine "0.1.2.3.4.5.6.7.8.9"
- le pattern (\d)\.(\d)\.(\d)\.(\d)\.(\d)\.(\d)\.(\d)\.(\d)\.(\d)\.(\d)
=> le test est True avec les 10 motifs "0", "1", "2", ... "8" et "9"
J'aimerais simplifier l'écriture car dans mon cas réel il ne s'agit pas de simple digits séparé d'un "." mais de motif comme ceci : [A-Z]{3}\d\d[A-Z]{2} (ABC12DE) séparé d'un "."
De plus il n'y en a pas 10 mais 32.
Le pattern va donc être :
([A-Z]{3}\d\d[A-Z]{2})\.([A-Z]{3}\d\d[A-Z]{2})\. ...................... \.([A-Z]{3}\d\d[A-Z]{2}) (32 fois)
En terme de maintenance on devine déjà que ça ne va pas être pratique.
Comment simplifier l'expression en faisant probablement intervenir {31} pour avoir mes 32 motifs ?
PS :
- Dans le tutoriel ci-dessus, il y a l'exemple d'une adresse IP qui est constitué de 4 nombres <= 255 séparés d'un "." mais malheureusement le pattern du tutoriel ne renvoie pas les 4 motifs. (J'ai bien testé je vous le promets)
- Je sais qu'un split pourrait être utilisé ici mais la méthode .Join sur un tableau est beaucoup moins puissante qu'un RegExp.Replace en terme de possibilité et de maintenance.
Partager