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 :

Aide pour une regex


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 330
    Points : 85
    Points
    85
    Par défaut Aide pour une regex
    Bonjour,

    J'ai une phrase qui est en fait une requête SQL. J'ai besoin de capturer le premier mot clé FROM qui ne soit pas à l'intérieur d'un bloc délimité par des parenthèses.

    Par exemple :

    SELECT a, b , c, (SELECT ... FROM ... WHERE ...), (SELECT ... FROM ... WHERE ...) FROM ... WHERE ... (SELECT ... FROM ... WHERE ...)

    Je veux capturer celui qui est en gras.

    J'ai l'impression que les regex risquent de ne pas pouvoir m'aider, mais je demande à tout hasard car je sais qu'elles ont des ressources insoupçonnées.

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Une rèponce un petit peut ...
    Supprime tous ce qu'est entre parenthèse puis cherche ton FROM
    A la recherche d'un film : http://chercher-un-film.com

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 330
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par m4riachi Voir le message
    Une rèponce un petit peut ...
    Supprime tous ce qu'est entre parenthèse puis cherche ton FROM
    Merci. J'aime pas trop cette solution car le but final est de faire un remplacement du FROM en laissant le reste intègre.

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Ceci pourrait être une piste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
    $str = 'SELECT a, b , c, (SELECT ... FROM ... WHERE ...), (SELECT ... FROM ... WHERE ...) FROM ... WHERE1 ... (SELECT ... FROM ... WHERE ...)fin';
     
    $reg = '/
        ((?:^[^(]+) | (?:\)[^(]+))
        (FROM)
        ([^)]+)
        /x';
     
    echo preg_replace($reg, '$1FOOBAR$3', $str);
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

Discussions similaires

  1. aide pour une regex
    Par casp13 dans le forum Langage
    Réponses: 3
    Dernier message: 21/02/2008, 09h41
  2. [RegEx] Besoin d'aide pour une regex
    Par vallica dans le forum Langage
    Réponses: 3
    Dernier message: 20/09/2006, 08h50
  3. [RegEx] Aide pour une regex
    Par pj69100 dans le forum Langage
    Réponses: 6
    Dernier message: 29/08/2006, 19h19
  4. [RegEx] Aide pour une REGEX svp
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2006, 17h41
  5. [RegEx] Aide pour une REGEX
    Par Death83 dans le forum Langage
    Réponses: 6
    Dernier message: 28/06/2006, 15h50

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