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

Collection et Stream Java Discussion :

Regex pour filtrer une requête SQL


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Par défaut Regex pour filtrer une requête SQL
    Bonjour,

    Je cherche à récupérer les différentes parties d'une requête SQL.

    Pour la partie select, ça fonctionne, mais pour le from je n'y arrive pas.

    pour une requête "select .. from .. where .. order by...", je veux avoir ce qui se trouve entre le from et le where. Le where et le order by n’étant pas toujours présent.

    J'ai le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String newQuery = "select  ... from ... where ... order by ...";
    Pattern from =Pattern.compile(".*from (.*) *(where.*)? *(order by.*)?");
    Matcher m=from.matcher(newQuery);
    if(m.find())
       System.out.println(m.group(1));
    Mais le where et le order by apparaissent quand même.
    Je pense que la partie (.*) va jusqu'au bout de la chaine mais je ne trouve pas comment lui dire de s’arrêter s'il y a un where ou un order by

    Ma question est elle claire?

    Merci par avance.

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    C'est quoi Pattern ? Je ne connais pas.

    Sinon, une solution peut-être moins propre : Utiliser indexOf de String qui va renvoyer les positions de regex. Ensuite, tu fais un substring. C'est pas très propre j'en conviens mais ça fonctionne

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Par défaut
    Il s'agit de la classe java.util.regex.Pattern. voir ici pour plus de détail.

    C'est ce que j'ai fait, mais j'aimerais savoir si c'est possible avec les expressions régulières.

  4. #4
    Membre confirmé Avatar de IMPRO
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Août 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Août 2007
    Messages : 111
    Par défaut
    essaye sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    String newQuery = "select  .1. from .2. where .3. order by .4.";
            Pattern from =Pattern.compile("select (.*) from (.*) where(.*) order by(.*)");
            Matcher m=from.matcher(newQuery);
            int i=1;
            m.find();
            while(i<=4){  
                System.out.println(m.group(i));
            i++;
            }

Discussions similaires

  1. [AC-2000] Récupérer la valeur d’une liste déroulante pour filtrer une requête SQL
    Par Gremandine dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 18/03/2010, 15h43
  2. Regex pour nettoyer des requêtes SQL
    Par gaboo_bl dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 26/03/2007, 12h03
  3. Aide pour construire une requête SQL
    Par squalito dans le forum Oracle
    Réponses: 1
    Dernier message: 09/03/2007, 15h04
  4. Aide pour construire une requête SQL
    Par squalito dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/03/2007, 14h08
  5. [MySQL] Afficher le temps mis pour executer une requête SQL
    Par micatmidog dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/09/2005, 11h23

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