Pb utilisation REGEX [Résolu/Fermé]

Signaler
Messages postés
94
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
5 décembre 2008
-
Messages postés
94
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
5 décembre 2008
-
Bonjour,

J' utilise une regex qui est la suivante mais elle ne fonctionne pas :

^[1-9][.][A-B-C-H-J-M-N-O-P-R-G-L][.][0-14][.][001-999]$

J'aimerai que : premièrement un chiffre de 1 à 9
séparé d'un point
ensuite une lettre parmi A-B-C-H-J-M-N-O-P-R-G-L
séparé d'un point
ensuite un chiffre de 0 à 14 ou une lettre de R à U
séparé d'un point
ensuite un numéro d'ordre de 001 à 999

Exemple de résultat : 2.A.6.096

Merci pour votre aide,

1 réponse

Messages postés
3607
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
10 août 2020
962
Bonjour,

Le point "." signifie "n'importe quel caractère". Essaie de l'échapper, en remplaçant tes [.] par \.
Ensuite, les tirets servent à matérialiser un intervalle.
Remplace [A-B-C-H-J-M-N-O-P-R-G-L] par [ABCHJMNOPRGL]
[0-14] ne fonctionnera pas non plus, parce que les expressions rationnelles agissent en termes de caractères et non pas en termes de nombres ou autres choses qui pourraient avoir un sens. Ca devient plus compliquer à coder, du coup :
[0-9]|1[0-4] (c'est à dire : un chiffre allant de 0 à 9, OU un 1 suivi d'un chiffre allant de 0 à 4.

Même problème pour [001-999], mais en plus simple.
[0-9]{3} (c'est-à-dire : 3 chiffres de 0 à 9. Par rapport à ton souhait, cela inclut la séquence 000, mais est-ce génant ?)

Ce qui donne, au final :
^[1-9]\.[ABCHJMNOPRGL]\.[0-9]|1[0-4]\.[0-9]{3}$

Voilà !
Ça donne quoi ?

Je ne garantis par le résultat à 100%, les expressions rationnelles étant une science inexacte en dehors d'un environnement bien déterminé... Comprendre : ça dépend du logiciel que tu utilises pour la faire tourner !


Xavier
Messages postés
94
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
5 décembre 2008
3
Je te remercie pour ton aide j'ai pu modifier les erreurs,

Bonne journée,

Je passe ainsi le message en résolu