2010-03-11 5 views
0

Je suis en train de faire une regex qui montrera toutes les clés de ce produit avec la valeur #####-#####-#####-#####-#####Regex pour le produit clé

c'est l'expression régulière que j'ai créé

[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5} 

pour une raison juste n » t travaillant.

+0

Quelle est la langue? Et toutes vos lettres sont-elles vraiment majuscules? – zneak

+0

dans quelle langue utilisez-vous la regex? Qu'est-ce que cela signifie? Mon hypothèse serait des chiffres, mais votre regex comprend des alphas majuscules. Cette question a besoin de plus de contexte/d'exemples pour commencer à y répondre. – theraccoonbear

+3

Que signifie exactement "ne fonctionne pas"? Ajoutez des exemples à votre question. –

Répondre

1

Vous devez ancrer le modèle:

/\A[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}\z/ 
+0

Pourquoi mélanger '^' et '\ z'? De plus, il est peu probable que l'expression régulière échoue. – zneak

+2

Aucune raison sauf que, en l'absence de '/ m','^'et' \ A' signifient la même chose alors que '$' et '\ z' ne le font pas. Sans ancrage, le motif peut correspondre même s'il y a des caractères supplémentaires dans la chaîne et c'est peut-être ce que l'OP veut dire par * échouer *. C'était ma meilleure estimation. –

2

Quel outil regex comptez-vous utiliser? grep, egrep, sed, perl, etc?

En outre, vous pouvez autoriser des lettres minuscules:

En utilisant egrep et Cygwin, cela fonctionne: '^([A-Za-z0-9]{5}-){4}[A-Za-z0-9]{5}$'

Mais comme Hyman souligne, {} est pas valable dans chaque ensemble regex (d'où pourquoi j'ai utilisé egrep, pas grep).

0

Celui-ci a fonctionné pour moi à Expresso:

([A-Za-z0-9] {5} - [A-Za-z0-9] {5} - [A-Za z0-9] {5} - [A-Za-z0-9] {5} - [A-Za-z0-9] {5})

0
(([a-z0-9]{3,8}-){1,4}[a-z0-9]{3,8}(\s|,)|([A-Z0-9]{3,8}-){1,4}[A-Z0-9]{3,8}(\s|,)) 

Que l'on travaille pour moi. tous les caractères minuscules ou tous les caractères majuscules. les chemins doivent être longs de 3 à 8 caractères et séparés par moins. le premier motif fera pour 1 à 4 répétitions, le dernier motif avec la même structure ne doit pas avoir de négatif à la fin. La clé complète est suivie d'une virgule ou de tout espace blanc incluant newLine, tabulation, espace, rien.

[a-z0-9]{3,8}- = tous les caractères inférieurs + Tous les chiffres 3 à 8 fois suivies par moins

([a-z0-9]{3,8}-){1,4} = au-dessus de la règle 1 à 4 fois

[A-Z0-9]{3,8}- = tout caractère majuscule + tous les chiffres 3 à 8 fois suivies moins

| = OR -> onyle une des règles doit être vrai

(\s|,) = wollowed par un rien, l'espace, onglet ou n ewLine ou une virgule

Si vous le savez, qu'il n'y a que des caractères supérieurs, vous pouvez supprimer cette règle pour les caractères plus bas, de sorte que vous avez été à gauche:

([A-Z0-9?]{3,8}-){1,4}[A-Z0-9?]{3,8}(\s|,) 
Questions connexes