Expression régulière

Résolu/Fermé
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 - 18 juil. 2008 à 18:26
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 - 18 juil. 2008 à 19:45
Bonjour,
Moi et ces machins là ça fait 01958034563690854.
Alors j'ai deux questions:

1- Quelqu'un connaitrait pas un très bon site où il y a une explication complète de comment ça marche (avec toutes les sortes de truc comme ereg, preg_match, etc).

2- Si quelqu'un s'y connait, j'essaie de faire valider un string avec un preg_match. Je veux que mon string commence par 5 chiffres, ensuite 1 lettre puis 3 autres chiffres.

Donc mon string devrait avoir l'air de XXXXXAXXX (où X=0 à 9 et A = A à Z ou a à z).
J'ai essayé ça (pas d'erreur) mais ça ne semble pas fonctionner:

!preg_match("/^[0-9]{5}\[A-Za-z]{1}\[0-9]{3}$/" ,$_POST['zep'.$compteur])

Une idée?

Merci

3 réponses

gigaga Messages postés 2347 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
18 juil. 2008 à 18:31
1) https://www.april.org/files/groupes/doc/perl/perl-6.html?q=groupes/doc/perl/perl-6.html
Perl est le meilleur language pour les ER. Je te conseille de regarder le lien. Tu pourras facilement apres adapter à php

2) ^[0-9]{5}[A-Za-z][0-9]{3}$
en fonction des languages, il faut "protéger" par un "\" certains caractères mais il ne me semble pas que ce soit le cas pour php. Ensuite [A-Za-z]{1} = [A-Za-z] (par défaut, c'est une fois)
0
gigaga Messages postés 2347 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
18 juil. 2008 à 18:43
absolument qu'une fois tu mets rien :
[A-Za-z] = 1 fois
[A-Za-z]+ = au moins une fois
[A-Za-z]* = 0 ou plusieurs fois
[A-Za-z]{x} = x fois
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
18 juil. 2008 à 18:49
Donc je peux faire:

/^[0-9]{5}[A-Za-z][0-9]{3}$/

??
-1
gigaga Messages postés 2347 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301 > X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010
18 juil. 2008 à 18:51
oui
-1
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24 > gigaga Messages postés 2347 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014
18 juil. 2008 à 19:03
Ah.. c'est cool :P

Merci bien de ton aide, c'était plus clair et dit en 30 fois moins de ligne que pleins de sites.^^
-1
gigaga Messages postés 2347 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301 > X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010
18 juil. 2008 à 19:05
Pas de pb! ça fait des années que je fais du Perl (et donc des ER ;)
-1
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24 > gigaga Messages postés 2347 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014
18 juil. 2008 à 19:45
J'ai jamais fait de PERL LOL. J'ai fait des rexeg en VB mais ça ne ressemble pas vraiment on va dire. Pareil pour dire que je ne fais du php que depuis 2 mois (même si je m'en sors très bien).

Je préfère largement programmer en web alors je vais commencer à me tourner vers ça plus que le reste mais au collège on nous donne pas le choix. Donc php, pour l'instant, j'apprends moi-même et pour moi surtout lol.
Mais ça va assez bien en cherchant un peu sur google et en posant parfois des questions sur CCM :P
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
18 juil. 2008 à 18:35
J'ai trouvé
/^[0-9]{5}+[A-Za-z]{1}+[0-9]{3}$/

C'est des + et pas des \

J'ai essayé avec PERL et ça me plantait pleins de warning alors pas sûre mais je vais aller voir ton lien pareil car j'ai lu ça à plusieurs place que PERL était fort.

J'avais trouvé ça (parfait pour le débuggage rapide)
http://www.switchplane.com/utilities/preg_match_regular_expression_tester.php

Merci en tout cas d'avoir pris le temps de me filer un site :P
-1
gigaga Messages postés 2347 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
18 juil. 2008 à 18:37
En fait, le + veut simplement dire au moins une fois. Vu que tu les quantifies ils ne servent à rien. A mon avis, ton souci venait plutot du fait que tu avais mis des "\" devant "[" (dans ton 1er post)
-1
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24 > gigaga Messages postés 2347 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014
18 juil. 2008 à 18:38
Ok mais alors si je ne les veux absolument qu'une fois (par exemple), je mets quoi? Rien?

à la rigueur je m'en fous du + car ça ne peut pas déborder vu que je fais un test strlen sur la variable en question en plus de la regex. Mais bon, ce serait intéressant à savoir quand même.^^
0