REGEX

Signaler
Messages postés
20
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
1 juin 2005
-
Messages postés
20
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
1 juin 2005
-
Bonjou...

Je réalise un script php pour récuperer ses valeurs possibles dans un textaréo, saisi par l'utilisateur.

J'utilise donc un Regex qui me renvera les infos souhaitées :

$regex1=preg_match("!Niveau : (?:Très Faible|Faible|Moyen|Fort|Très Fort|Remarquable) \((?:([0-9]+[-][0-9]+)|([<>][0-9]+))\)!", $chaine, &$niv);

if($niv[1]!=NULL)
{$niv2 = $niv[1];}
else
{$niv2 = $niv[2];}

Mais le problème, c'est qu'il y a toujours des problèmes dans le if qui suit la requete du regex ...
Faut-il vérifier la valeur de l'array, ou alors voir si il est défini afin de pouvoir récupérer la valeur $niv2 avec le résultat qui diffère selon le choix de l'utilisateur ??

Je rapelle que le texte marqué par l'internaute est soit de type (2-6) soit de type (<6)

Quel est mon problème ??

merci de vos futures réponses
swop

1 réponse

Messages postés
20
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
1 juin 2005

naj'ai résolut moproblème, en passent par un autre chemin à la base ..

mais il me reste un problème ...

Porquoi ce REGEX marche :

$regex1=preg_match("!Niveau : (?:Très Faible|Faible|Moyen|Fort|Très Fort|Remarquable|Excellent|Jamais Vu) \((?:(?:entre ([0-9]+[-][0-9]+)|([<>][0-9]+)))\)!", $chaine, &$niv);

et pas celui la :

$regex1=preg_match("!Dés d'Attaque : (?:Très Faible|Faible|Moyen|Fort|Très Fort|Remarquable|Excellent|Jamais Vu) \((?:(?:entre ([0-9]+[-][0-9]+))|([<>][0-9]+))\)!", $chaine, &$att);

alrs que les 2 onts la forme suivante dans le textaréa :

Niveau : Fort (entre 5-7)
Dés d'Attaque : Moyen (entre 4-6)

merci d'avance ..
swop