J'essaie de trouver le REGEX pour ce code de produit particulier.Comment exclure 2 caractère alphabétique d'une chaîne dans REGEX
Description:
- Un code produit valide doit commencer par un des deux nombres de chiffres.
- Le nombre ne peut commencer par 0
- Le nombre doit être suivi d'un trait d'union -
- Le trait d'union est suivie d'une séquence de lettres majuscules conformes aux modèles AAA et BBB
- AAA: chaîne de tous les trois caractères alphabétiques majuscules à l'exception de « I » et « O »
- chaîne BBB de tous les caractères alphabétiques trois majuscules dans la gamme « A » à « D »
Exemples:
N-AAA
NN-AAA
NN-BBB
NN-AAABBB
Mon problème est avec le point 5) I mentionné. Ma solution à ce jour est:
^[1-9] [0-9] - [AZ] [^ IO] {3} [AD] {3} $
Je ne suis pas? sûr de la partie que j'ai mis en évidence dans mon RE. Je cherche à savoir si ma solution est correcte et si ce n'est pas le cas, j'aimerais connaître la réponse et le raisonnement qui la sous-tend.
Merci,
Il est inexact, puisque '[^ IO]' matches * tout * ombles mais '' î' et O'. Aussi, pourquoi avez-vous ajouté '{#}'? Et si vous vouliez dire un trait d'union après un nombre, pourquoi utiliser '.'? Donc, «AAA» et «BBB» sont des séquences de trois lettres chacune? Eh bien, vos exigences ne sont pas claires. Essayez ['^ [1-9] [0-9]? - (?: (?! [IO]) [AZ]) {3} (?: [AD] {3})? $'] (Https: //regex101.com/r/lhJAgI/1). –
Utilisez-vous flex? (Sinon, pourquoi signaler la question [compiler-construction]?) En outre, vos exemples semblent suggérer que le nombre peut être suivi par AAA ou BBB ou les deux. Mais ce n'est pas ce que dit votre description. – rici
Quel langage de programmation utilisez-vous? –