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 :

je ne trouve pas l'expression [RegEx]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut je ne trouve pas l'expression
    Bonjour.

    Je galère un peu pour trouver la solution à mon problème.

    En fait j'utilise des expressions régulières assez régulièrement et nottament dans des requêtes SQL. Ma question actuelle ne concerne pas rééllement l'utilisation des expressions régulières dans le SQL, rassurez-vous.

    Mon soucis est le suivant : j'ai tout une grande liste de chaines de caractères et je ne veux que sélectionner leur valeur jusqu'au caractère "_" quand c'est possible.

    Exemple?

    Si j'ai test, test1, test2, test3_1, test4_2, je ne veux que récupérer les valeurs test1, test2, test3 et test4.

    Du coup ma requête ressemblais à ca :
    SELECT substring(monchamp from '^[^_]*')

    L'expression ^[^_]* définissant une classe de caractères réprésentant tout sauf le "_" justement.

    Hors je veux faire évoluer cette règle pour ne sélectionner leur valeur jusqu'à l a chaine "_2" quand c'est possible !

    Exemple?

    Si j'ai test, test1, test2, test3_1, test4_2, je ne veux que récupérer les valeurs test1, test2, test3_1 et test4.

    Je me voyais donc faire évoluer mon expression ^[^_]* en autre chose... mais je n'y arrive pas

    Une idée?

    Merci bien

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 22
    Points : 25
    Points
    25
    Par défaut
    Peut-être:
    si j'ai bien compris l'énoncé.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je vais juste donner un exemple plus visuel (souligné, ce qui m'étais retourné)

    AVANT (avec ^[^_]*)

    expression1
    expression2
    expression3
    expression4
    expression4_1

    APRES (enfin ce que je voudrai)

    expression1
    expression2
    expression3
    expression4
    expression4_1
    expression4_2

    Merci pour votre aide.

  4. #4
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Je n'ai pas compris ton message ci-dessus. Par contre, pour ce que je comprends du premier message, dans un cadre PHP, ça donnerait quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //$subject = 'chaîne à tester';
    $matches = array();
    if ( preg_match( '/^([^_]+)($|_1)?/', $subject, $matches ) ) {
      $out = $matches[ 1 ].$matches[ 2 ];
    } 
     
    print( $out );
    + un contrôle sur $matches[ 2 ] qui n'est pas forcément défini.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ah merci Herode tu m'as mis sur la piste

    Ce que je voulais étais en fait : ^([^_]*)($|_[^2])*([^_]*)

    Merci beaucoup.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/11/2011, 01h47
  2. Je ne trouve pas SQL server 2008 express
    Par selecto dans le forum Visual Studio
    Réponses: 2
    Dernier message: 18/11/2009, 00h44
  3. je ne trouve pas la bonne syntaxe
    Par poelvo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/08/2003, 02h30
  4. [TP]trouve pas le graph.tpu
    Par kaygee dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 13/06/2003, 13h49
  5. [Kylix] [cgi] ne trouve pas libsqlmy.so.1 !
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 04/07/2002, 16h15

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