Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/12/2006, 20h12   #1
Membre habitué
 
Avatar de php_de_travers
 
Inscription : juin 2004
Messages : 460
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 460
Points : 144
Points : 144
Par défaut identifier un nombre contenant un espace

Bonsoir,

pour terminer cette année en beauté, je souhaiterais savoir comment faire pour récupérer une valeur numérique dans une chaîne (dont j'ai viré tout le html) et qui peut prendre la forme suivante :

Spectateurs560
ou
Spectateurs1 568

Le code suivante fonctionne bien avec Spectateurs560 :

Code :
1
2
3
preg_match("#Spectateurs([0-9]{1,6})#" , $texte, $a) ;
$nb_spectateurs = $a[1] ; 
print "SPECTATEURS : $nb_spectateurs<br/>" ;
En revanche, le même code indique 1 pour Spectateurs1 568, au lieu de 1568.

Normal : le 1 est séparé du reste par une espace.
J'ai tenté de supprimer les espaces par un ereg_replace mais rien n'y fait.

Si, entre deux huîtres, vous avez le temps de m'expliquer comment on fait pour intégrer les nombres écrits avec des notations zarbies, je serai ravi (de la crèche !)

--------
Modif perso : j'ai idée qu'on doit pouvoir faire un truc avec sprintf ou une fonction du même genre mais je câle...
php_de_travers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2006, 21h24   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
As-tu essayer comme ceci :

Code :
1
2
3
4
 $texte = "Spectateurs1 568";
      preg_match("#Spectateurs(([0-9]|.){1,6})#" , $texte, $a) ;
$nb_spectateurs = $a[1] ; 
print "SPECTATEURS : $nb_spectateurs<br/>" ;
C'est un peu barbare mais ça a le mérite de fonctionner
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2006, 22h02   #3
Membre habitué
 
Avatar de php_de_travers
 
Inscription : juin 2004
Messages : 460
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 460
Points : 144
Points : 144
Citation:
As-tu essayé comme ceci :
Forcément non ! Des solutions pareilles, ça ne s'invente pas.
Bonnes fêtes de fin d'année.

---------------------------

La solution permet effectivement de récupérer de 1 à 6 caractères qui suivent le mot Spectateurs.
Par contre, ça récupère tout.
J'ai idée que c'est le point qui indique de tout récupérer.
Ma question : comment récupérer uniquement les chiffres ?
php_de_travers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2007, 22h52   #4
Membre habitué
 
Avatar de php_de_travers
 
Inscription : juin 2004
Messages : 460
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 460
Points : 144
Points : 144
Ne fonctionne pas

Code :
1
2
3
4
$texte = "Spectateurs1 568";
      preg_match("#Spectateurs(([0-9]|[[:blank:]]){1,6})#" , $texte, $a) ;
$nb_spectateurs = $a[1] ; 
print "SPECTATEURS : $nb_spectateurs<br/>" ;
Ne fonctionne pas non plus
Code :
1
2
3
4
$texte = "Spectateurs1 568";
      preg_match("#Spectateurs(([0-9]|[[:space:]]){1,6})#" , $texte, $a) ;
$nb_spectateurs = $a[1] ; 
print "SPECTATEURS : $nb_spectateurs<br/>" ;
Help !
php_de_travers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2007, 22h58   #5
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Ca récupère tous les chiffres...C'est pas le but ?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2007, 23h49   #6
Membre habitué
 
Avatar de php_de_travers
 
Inscription : juin 2004
Messages : 460
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 460
Points : 144
Points : 144
Je viens de déterminer une des sources de plantage : le séparateur de milliers
http://www.developpez.net/forums/sho...d.php?t=257764
php_de_travers est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h30.


 
 
 
 
Partenaires

Hébergement Web