2009-11-09 5 views
0

J'ai besoin d'une regex pour les nombres à quatre chiffres séparés par des virgules ("default" peut aussi être une valeur).regex pour les nombres à quatre chiffres (ou "par défaut")

Exemples:

  1. 6755
  2. 3452,8767,9865,8766,3454
  3. 7678,9876
  4. 1234,9867,6876,9865
  5. default

Remarque: "default" seul devrait correspondre, mais default,1234,7656 ne devrait pas correspondre.

+1

Pourquoi regex - diviser, et vous avez un tableau de valeurs – Mark

+0

Quel est le style de regex? PCRE, POSIX, POSIX étendu, Vim, etc.? À quoi ressemble votre contribution? Les exemples sont-ils le seul texte sur la ligne ou pourrait-il être au milieu de la ligne parmi d'autres choses? – jamessan

+0

@greg: mon try- défaut | \ d {4} (\, \ d {4}) * ne fonctionne pas @ mark/@ jamessan: doit l'utiliser dans xsd – Subhasis

Répondre

10

Cela devrait le faire:

/^(default|\d{4}(,\d{4})*)$/ 

C'est

^   start of string 
(  start group 
default literal "default" 
|  or 
\d{4} digit repeated 4 times 
    (  start group 
    ,  literal "," 
    \d{4} four digits 
)  end group 
*  repeat 0 or more times 
)   end group 
$   end of string 
+0

Battez-moi par 15 secondes. ;-) –

+0

il ne correspond à rien même pas 1234 pas même 1234,5678 – Subhasis

+0

Fonctionne pour moi à cette page de test regex: http://www.regular-expressions.info/javascriptexample.html (Note: Je devais enlever le barres obliques au début et à la fin.) Pourrait-il y avoir une autre raison pour que les choses ne marchent pas pour vous? Des problèmes d'espace de noms, peut-être? –

1

Basé sur les réponses aux commentaires, il semble que vous avez besoin d'une expression régulière pour une restriction de motif dans un XSD. Selon le XSD spec, cela devrait fonctionner:

default|[0-9]{4}(,[0-9]{4})* 
Questions connexes