Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
1634 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  aide pour une reg expr php...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

aide pour une reg expr php...

n°2125291
enuma
Posté le 08-02-2012 à 04:39:34  profilanswer
 

salut à tous,
 
je galère comme un con pour un truc tout bête : j'ai un code html de ce genre :

Code :
  1. <span class="tab">-2.09%</span>        </td>


Je veux récupérer dans une variable le nombre -0.66 (sans le %).  
 
Actuellement, en m'aidant du site RegExr, j'ai fait ça :

Code :
  1. if(preg_match('/[0-9]{1,2}.[0-9]{1,2}%/',$machaine, $matches))
  2. {
  3.       echo 'Le nombre est '. $matches[1].'<br>';
  4. }


 
Il rentre bien dans la boucle, mais je n'arrive pas à isoler le % pour ne garder qu'un nombre... il doit manquer un petit truc... ? J'ai essayé de faire un htmlspecialchars($machainehtml), mais ça ne change rien...
 
Merci d'avance pour votre aide !

mood
Publicité
Posté le 08-02-2012 à 04:39:34  profilanswer
 

n°2125353
Tirkyth
I love high heels
Posté le 08-02-2012 à 11:39:59  profilanswer
 

Salut,
 
Essaye ça :

Code :
  1. if (preg_match('/(-?[0-9]{1,2}.[0-9]{1,2})%/', $machaine, $matches))
  2. {
  3.    echo 'Le nombre est '. $matches[1].'<br>';
  4. }


---------------
Développeur Symfony2 @ Sensio Labs - http://www.symfony.com - Mon Feedback !
n°2125378
enuma
Posté le 08-02-2012 à 13:02:10  profilanswer
 

ça marche, merci ! :)  Je suis nul j'y étais presque :/
 
Pour preg_match_all par contre j'ai un blème (ça marche mais y'a un truc que je comprends pas). Je fais :

Code :
  1. preg_match_all('/(-?[0-9]{1,2}.[0-9]{1,2})%/',htmlspecialchars($machaine), $matches);
  2. echo ($matches[0][0].'<br>'.$matches[0][1].'<br>');
  3. echo ($matches[1][0].'<br>'.$matches[1][1].'<br>');


 
La première ligne m'affiche le résultat avec les %, et la seconde la même chose mais sans les % (c'est ce que je veux) ; tu saurais me dire pourquoi il y a les résultats avec les % dans matches[0] ?
 
Dans tous les cas ça marche.


Message édité par enuma le 08-02-2012 à 13:27:17
n°2125396
Tirkyth
I love high heels
Posté le 08-02-2012 à 14:08:50  profilanswer
 

Dans $match[0], tu as les résultats de ce qui a matché ton pattern. Comme dans ton pattern tu as le symbole %, alors dans ces résultats forcément ce symbole est inclus.

 

Dans $match[1], tu ne l'as pas, car pour ces résultats il a mis comme valeur ce qui est sélectionné via les parenthèses. Et si tu regardes bien, les parenthèses dans ce cas sélectionnent tout sauf le symbole %


Message édité par Tirkyth le 08-02-2012 à 14:09:22

---------------
Développeur Symfony2 @ Sensio Labs - http://www.symfony.com - Mon Feedback !
n°2125409
enuma
Posté le 08-02-2012 à 14:33:16  profilanswer
 

oui pour le "capturing group" je savais, mais je me demandais quel était l'intérêt d'enregistrer aussi les résultats avec le %, si je voulais le % je l'aurais mis dans la parenthèse... mais il doit y avoir une raison :D
 
Question bête, mais peut-on supprimer de manière simple un espace avec une expression bien choisie ? (sans avoir à utiliser une autre fonction que preg_match_all) ; si par exemple j'arrive à sélectionner 80 653.98, et que je veux sauvegarder 80653.98, en tant que nombre ? (alors que 80 653.98 ne peut pas être vu comme un nombre j'imagine).
 
A priori non, j'ai fait avec un str_replace et voilà :D


Message édité par enuma le 08-02-2012 à 15:39:08
n°2125518
CyberDenix
Posté le 08-02-2012 à 23:21:17  profilanswer
 

'`([0-9]+)\s*([0-9]+)`Usi', '$1$2'


---------------
Directeur Technique (CTO)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  aide pour une reg expr php...

 

Sujets relatifs
Besoin d'aide pour faire des moyennes!aide sur fonction excel
A supprimer[Résolu] Petite aide vba Excel
demande d'aide en programmation en cBesoin d'aide pour création d'une requête complexe (MySQL)
[Résolu]Aide pour créer un petit prog[Résolu][Batch]Aide commande ren en bat
aide lire fichier texteAide programmation C !!!
Plus de sujets relatifs à : aide pour une reg expr php...


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware