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 Perl Discussion :

pb expression régulière


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut pb expression régulière
    Bonjour,
    J'ai un gros problème avec une expression régulière dont le postulat de départ semblait plutot simple:
    Ce que je veux serait de récupérer toutes les tables dans un select de la forme :
    select champs1, champs2 from table1, table2, table3 where conditions

    le problème c'est que dans les fichiers que je souhaite parser je me retourve sur une seule ligne avec ceci :
    select champs from table ... code ... select champs1, champs2, from table1, table2, table3 where conditions

    Si quelqu'un a une idee je suis preneur car la je seche vraiment

    Merci d'avance .

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    J'essaierais quelque chose comme ça:
    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
    #!usr/bin/perl -w
    use strict;
    use warnings;
     
     
    my $Ligne = "select champs from table where conditions1 ... code ... select champs1, champs2, from table1, table2, table3 where conditions2";
     
    my @requetes = split ('select', $Ligne);
    foreach my $req (@requetes)
    {
            print $req."\n";
     
            if ($req =~ /(.*) from (.*) where (.*)/)
            {
                    my $champs = $1;
                    my $tables = $2;
                    my $conditions = $3;
                    print "SELECT $champs FROM $tables WHERE $conditions\n";
     
            }
     
    }
    Si tu ne veux pas faire requête par requête, tu peux stocker tes variables $champs, $tables et $conditions dans une hash et les utiliser à la sortie de ta boucle.

    Jasmine,

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut
    ah pas bête du tout j'avais absolument pas pensé a spliter avec le select !
    Je vais tester ça de suite et te dire si ça marche ^^
    Merci beaucoup

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut
    ça marche super merci avec les deux ptites modifs spécifiques a mon cas mais le coup de spliter avec les select c'est tout a fait ce qu'il me manquait ^^
    Merciiiiiiiiiiiiiiiiiiiiiiiii

  5. #5
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Ben oui, parfois il suffit d'une astuce toute simple mais on n'y pense pas ... d'où d'utilité de ce forum où on y réfléchit à plusieurs.


    Jasmine,

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

Discussions similaires

  1. [RegEx] Expression régulières : Balises <SCRIPT>
    Par Gwipi dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2006, 23h25
  2. Expression réguliére
    Par Mad_Max dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 16/09/2003, 18h17
  3. [expression régulière] mon cerveau fait des noeuds..
    Par nawac dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 27/05/2003, 10h06
  4. Expressions réguliéres
    Par Tooms dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2002, 18h42
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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