Regular expression php

Résolu/Fermé
alino_spirit Messages postés 61 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 15 mars 2010 - 28 juil. 2009 à 12:45
TheLamia Messages postés 76 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 18 août 2010 - 3 août 2009 à 11:50
Bonjour,

j'ai une variable $classe sur laquelle j'effectue un test
expl : $classe="380709 jean paris";

on peu avoir plusieurs profs exp : pierre, jean
on peu avoir plusieurs villes exp : paris, geneve

voila le contnu de la variable $classe
$classe="280709 jean paris";
$classe="290709 jean ";
$classe="280709 pierre geneve";

voila le test :
if (ereg("([0-9]{6}) (pierre|jean) (paris|pierre)", $classe, $reg))
{
echo "$reg[1].$reg[2].$reg[3]";
}

la ville peu existe ou pas comment faire pour dire que le paramètre ville est optionnelle ?
la variable $classe peu contenir la ville ou pas

bonne journée
A voir également:

5 réponses

TheLamia Messages postés 76 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 18 août 2010 31
28 juil. 2009 à 15:14
salut,

en méthode pas très belle, tu peux tout simplement remettre toute ton expression en optionnel avec | :

(([0-9]{6}) (pierre|jean) (paris|geneve))|(([0-9]{6}) (pierre|jean))
0
alino_spirit Messages postés 61 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 15 mars 2010 4
30 juil. 2009 à 18:50
Bonjour,

Les valeurs de la variable $classe proviennent d'une base de données
et je dois directement test cette variable sans faire aucune modification

Bonne journée
0
TheLamia Messages postés 76 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 18 août 2010 31
3 août 2009 à 09:57
tu ne pourra pas tester la chaine représentant ta ville si tu ne peux pas modifier ton expression régulière et si en plus les villes possibles peuvent changer.
dans ce cas je ne vois plus que tester la présence de caractères alphabétiques.
0
alino_spirit Messages postés 61 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 15 mars 2010 4
3 août 2009 à 11:47
Bonjour,

Merci beaucoup pour ton aide

j'ai testé ton exemple et ça fonctionne à merveille

mai j'ai trouvé une autre méthode

j'utilise "?" pour dire que l'expression entre parenthésé est optionnel

exemple : ([0-9]{6}) (pierre|jean)( (paris|Genève))?

ça fonctionne aussi bien

Merci encore

bonne journée,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TheLamia Messages postés 76 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 18 août 2010 31
3 août 2009 à 11:50
tout à fait tu as raison et c'est même mieux ! n'hésite pas à passer le sujet en résolu si c'est bien le cas !
0