probleme eregi

HD
Mammouth du PHP | 1181 Messages

10 août 2005, 22:24

salut
j'ai une variable aleatoire exemple :
$regs[1]=396.00
quand je veux utiliser la fonction :
$titre2= eregi ("([0-9|.]{1,9})", $regs[1], $regs2);
ca ne me retourne que le nombre minimum de caracteres (ici 1seul - le 3) alors que je veux recuperer le maximum (jusqu'à 9 caracteres)
la seule fois où ca a marché c'est quand j'ai fixé la taille à 6 mais c'est pas ce que je veux car la taile de la chaine $regs[1] est variable

meme en utilisant les differentes options presentees ici : http://www.phpfrance.com/tutoriaux/inde ... regulieres ca ne marche pas :(
merci

Mammouth du PHP | 19672 Messages

10 août 2005, 22:37

Je ne comprends pas ce que tu veux récupérer au juste... explique par rapport à ton exemple ce que tu veux extraire :shock:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

HD
Mammouth du PHP | 1181 Messages

10 août 2005, 22:50

:oops: en fait
$regs[1]=azea   396.00 zaea  aeza
par exemple et je veux recuperer juste "396.00" sachant que ce qu'il y a avant et apres ces chiffres (et les chiffres eux memes) sont aleatoires et la longeur de la chaine est variable (d'où l'utilisation de eregi)[/quote]

Mammouth du PHP | 19672 Messages

10 août 2005, 23:16

Ouais, ok, là, j'essaye depuis un moment, mais je suis vraiment pas doué avec ça. En revanche, ce que j'essaye de faire, c'est dans un premier temps de trouver le motif dans la chaine, j'y arrive relativement bien, et ensuite de virer tout ce qu'on ne veut pas garder... et là, je patine un peu. Si tu as de la chance, Ripat va passer par là demain et tu auras une explication largement meilleure que la mienne sur la question.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

HD
Mammouth du PHP | 1181 Messages

11 août 2005, 00:53

ok bonne chance moi
c'est quoi le motif d'une chaine ?

HD
Mammouth du PHP | 1181 Messages

11 août 2005, 07:30

finalement j'ai bricolé un truc tout seul :
$ligne = 0 ;
$titre = $regs[1] ;
$taille = strlen($titre);
$valeur = "";

while ( $ligne < $taille ) {
   switch ($titre[$ligne]) {
case is_numeric($titre[$ligne]):
   echo "numerique <br>";
   $valeur=$valeur.$titre[$ligne];
   echo "$valeur <br>";
   break;
case ".":
   echo "point <br>";
   $valeur=$valeur.$titre[$ligne];
   echo "$valeur <br>";
   break;
case "0":
   echo "zero <br>";
   $valeur=$valeur.$titre[$ligne];
   echo "$valeur <br>";
   break;
default :
   echo "autre <br>";
   break;
}
   $ligne=$ligne+1;
   };
et ca marche bien pour le moment

Mammouth du PHP | 19672 Messages

11 août 2005, 09:42

ok bonne chance moi
c'est quoi le motif d'une chaine ?
C'est le modèle qui sert en quelque sorte de masque, on cherche le motif dans une chaine, c'est à dire on cherche ce qui correspond aux caractéristiques qu'on a inscrit dans l'expression régulière.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: