Regexp avec longueur différente

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Regexp avec longueur différente

Re: Regexp avec longueur différente

par Berzemus » 28 juil. 2010, 22:09

preg_match("!^([0-9A-B]{17})|([0-9A-B]{24})$!",$str)
non plus :evil:
C'est normal, moi je vois ^masque1|masque2$"
Or, la bonne utilisation est ^(masque1|masque2)$
Les parenthèses font partie intégrante du "ou".

Ceci dit, tu as besoin d'une répétition de une fois A ou B. Or, avec les masques que tu utilises, c'est 17 ou 24 fois des chiffres ou A ou B.

Ceci serait valide:
1273914209384918A
Mais ceci aussi, du coup:
1B73B14A0A3B49A8A

Re: Regexp avec longueur différente

par altergo » 28 juil. 2010, 18:38

SVP ?

Re: Regexp avec longueur différente

par altergo » 28 juil. 2010, 11:31

preg_match("!^([0-9A-B]{17})|([0-9A-B]{24})$!",$str)
non plus :evil:

Re: Regexp avec longueur différente

par altergo » 28 juil. 2010, 11:26

ok..
preg_match("!^([0-9A-B]){17}|([0-9A-B]){24}$!",$str)
non plus ! Je suis proche ? :D

Re: Regexp avec longueur différente

par Berzemus » 28 juil. 2010, 10:21

Ne fonctionne pas :
:roll:
Parce qu'il est mal utilisé..

Le sigle "|" s'utilise ainsi:

#(regex1|regex2)#

Ainsi, ce sera soit le masque "regex1" soit le masque "regex2" qui sera employé.

Re: Regexp avec longueur différente

par altergo » 27 juil. 2010, 22:18

Ne fonctionne pas :
preg_match("!^[0-9A-B]{17}{17|24}$!",$str)
preg_match("!^[0-9A-B]{17}{17}|{24}$!",$str)
:roll:

Re: Regexp avec longueur différente

par altergo » 27 juil. 2010, 21:40

Il valide soit 17 soit 24 caracteres.

Re: Regexp avec longueur différente

par Berzemus » 27 juil. 2010, 21:37

17 ou 24 ou 17 à 24 ?

Ceci dit, en regex, tu as quelque chose qui ressemble à un ou logique.. :wink:

Regexp avec longueur différente

par altergo » 27 juil. 2010, 21:12

Bonjour,

J'aimerai valider en php avec des regexp cette expression :
preg_match("!^[0-9A-B]!",$str)
(pour des numeros de reference)
Je prend donc que de 0 à 9 et A et/ou B.
Mon soucis est que ces references peuvent etre de 17 ou 24 caracteres.
preg_match("!^[0-9A-B]{17}$!",$str)
fonctionne bien, mais comment faire pour 24 ?
preg_match("!^[0-9A-B]{17}{24}$!",$str)
ne fonctionne pas !

Merci pour votre aide.