Regular expression php
Résolu
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
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
Configuration: Windows Vista Internet Explorer 7.0
5 réponses
-
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 !
-
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, -
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. -
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 -
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))