IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupérer des informations dans une regex [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut Récupérer des informations dans une regex
    Bonjour,

    Voici ce sur quoi je suis bloqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (preg_match('#^indicateur_(SG[0-9][a-zA-Z]+)_SGSN', $line[0]))
    {
    	$tablesInd[] = $line[0];
    	$ress[] = $line[1]; 	
    }
    L'idée de la regex ci-dessus est de récupérer l'expression elle même et ce qu'il y a entre parenthèses.

    Un exemple :
    $tablesInd[] = indicateur_SG1BEAU_SGSN
    $ress = SG1BEAU
    Quand j'affiche mes deux tableaux, ils sont vide. Je suppose que ça vient de ma regex...

    Si vous avez des idées je suis preneur !

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Il manque le délimiteur de fin dans l'expression et le tableau qui reçoit le résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $line = "indicateur_SG1BEAU_SGSN";
    if (preg_match('#^indicateur_(SG[0-9][a-zA-Z]+)_SGSN#', $line, $matches))
    {
    	$tablesInd[] = $matches[0];
    	$ress[] = $matches[1]; 
    	echo "matches[0] = " . $matches[0] . "<br/>";
    	echo "matches[1] = " . $matches[1] . "<br/>";
    }
    ?>
    Délimiteurs

    preg_match

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Je te remercie pour ces éclaircissements ! Cependant même avec ça, ça ne marche pas voici le code qui concerne cette regex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    $tables = mysql_query('show tables');
    $res = mysql_fetch_array($tables);
     
    if (!$res)
    {
    	echo "La base de données est pour le moment inaccessible</p>";
    	print_r($bdd->errorInfo());
    	exit;
    }
     
     // --------------------------------------------------------------------------- \\
    // ********* SELECTION DES TABLES indicateur_ ET DES RESSOURCES SEULES ********* \\
     
    while ($line = mysql_fetch_array($tables))
    {
    	if (preg_match('#^indicateur_(SG[0-9][a-zA-Z]+)_SGSN#', $line,$matches))
    	{
    		print 'hi';
    		$tablesInd[] = $matches[0];
    		$ressource[] = $matches[1];
    		echo "matches[0] = " . $matches[0] . "<br/>";
    		echo "matches[1] = " . $matches[1] . "<br/>";
    	}
    }

    Cependant, il ne rentre jamais dans le if alors que quand j'affiche la requête show tables, je vois bien qu'il y a des tables sous la forme indicateur_....

    Je ne comprends pas.

  4. #4
    Membre habitué Avatar de denissay
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 103
    Points : 125
    Points
    125
    Par défaut
    Vire le ^ pour voir...
    Une réponse utile vous a aidé ? N'oubliez pas le
    Votre problème est résolu ? N'oubliez pas le

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while ($line = mysql_fetch_array($tables))
    {
    $line est un array. Le nom de la table est dans $line[0] :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    	if (preg_match('#^indicateur_(SG[0-9][a-zA-Z]+)_SGSN$#', $line[0], $matches))
    N.B. il manquait aussi un $ à la fin : #^...........$#.
    Dernière modification par Invité ; 31/01/2014 à 18h18.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Oui effectivement, j'ai raccourci $line[0] en $line. Je l'ai précisé, en ajoutant sa définition et son initialisation au début.
    Les marqueurs de début et de fin de ligne, ne sont indispensables que pour signifier qu'on ne veut trouver, dans chaque ligne, que ce que contient l'expression.

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Merci beaucoup pour vos réponses, ça marche !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer des informations dans une ListView (par exemple un ID)
    Par Berlo56 dans le forum Composants graphiques
    Réponses: 7
    Dernier message: 06/06/2014, 08h46
  2. [PHP 4] Récupérer des informations dans une chaine 1,2,3,4,5
    Par Nheil dans le forum Langage
    Réponses: 4
    Dernier message: 30/11/2010, 11h05
  3. récupérer des informations d'une feuille et les placer dans une autre
    Par winclass dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2008, 21h34
  4. [Regex] Récupérer des Variables dans une phrase.
    Par Jimmy_S dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/05/2008, 20h50
  5. Récupérer des données dans une page HTML
    Par newdelirium dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2005, 19h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo