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 23/03/2006, 14h42   #1
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 134
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 134
Points : 36
Points : 36
Par défaut preg_match_all()

Je souhaite récupérer ce qui se trouve après "STRING". J'ai alors écrit ce script :

Code :
1
2
3
4
5
6
7
8
 
$ask='SMI::enter.1.73.0 = STRING: "salut.a.tous"';
    preg_match_all ("(^STRING)","$ask", $io);
    echo "
	<pre>
	"$io[0][0]"
	</pre>
    ";
La variable $io contient un tableau "array", mais je n'arrive pas à retrouver ma chaine. $io[0][0] est vide.

Quelqu'un a une idée ?

Merci
winnie82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 15h09   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Je doute de la pertinence d'une regexp pour un traitement aussi simple.
Utilise plutôt strpos( ) + substr( )
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 15h15   #3
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 134
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 134
Points : 36
Points : 36
Ok, j'ai compris le principe mais la longueur de ma chaine est variable. Je peux fixer le début de la chaine avec strpos mais pour la longueur ...?
winnie82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 15h18   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Citation:
Envoyé par winnie82
Je ne peu pas utiliser substr() puisque le début de la chaine ainsi que sa longueur son variable
D'où l'intérêt de strpos( ) pour connaître la position du 1er caractère de la chaîne à extraire.

Citation:
Tout ce que je sais, c'est qu'elle est situé entre crochet.
Je ne vois pas de crochet dans ton exemple.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 15h19   #5
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 134
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 134
Points : 36
Points : 36
Excuse je voulais dire entre double quote ! Oups
winnie82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 15h22   #6
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 134
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 134
Points : 36
Points : 36
Ok, j'ai compris le principe mais la longueur de ma chaine est variable. Je peux fixer le début de la chaine avec strpos mais pour la longueur ...?
winnie82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 15h23   #7
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Bon bah j'attends que tu aies fait le point sur ce que tu veux faire pour te répondre
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 15h25   #8
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
PS : Merci de ne pas éditer tes msgs et d'en changer complètement le contenu => C'est assez gênant pour suivre une discussion convenablement.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 15h32   #9
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 134
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 134
Points : 36
Points : 36
Finallement, j'ai fait ceci :

Code :
1
2
3
4
5
6
    $ask0='SMI::1.73.0 = STRING: "bonjour"';
    $findme='"';
    $pos = strpos($ask0, $findme);
    $result = substr($ask0, $pos);    
    $io = eregi_replace ('"',"", $result);
    echo $io;
Résultat :
Code :
1
2
3
 
$result =  "bonjour"
$io = bonjour
Je trouve cela un peu long, mais ca a le mérite de fonctionner !
winnie82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 15h35   #10
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Plutôt que d'utiliser eregi_replace, utilise plutôt str_replace qui est plus rapide
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 22h36   #11
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

En effet, utilise plutôt str_replace() dans ce cas.
De manière générale, tu peux oublier les fonctions ereg au profit des fonctions str ou preg.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h54.


 
 
 
 
Partenaires

Hébergement Web