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 sur une expression régulière [RegEx]


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Aide sur une expression régulière
    Bonjours à tous,

    Voilà j'expose mon problème, j'ai une chaine de caractère dans laquelle je veux chercher des valeurs selon la "clé"/valeur qu'il y a avant.

    Ma variable est de ce type là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C+31TYER'2007PRIV'WM/MediaClassPrimaryID¼}#ãâK†¡H¤*(DPRIV)WM/M
    Je tiens à préciser que c'est une version raccourcie de ma chaine

    Je voudrais donc sélectionner la valeur qui suit TYER mais m'arrêter à la première valeur PRIV rencontrée donc obtenir dans mon exemple:
    Je sais aussi que devant chacune de mes valeurs il y a des caractères à ignorer, dans mon cas 1 caractère ' mais ce nombre peux varier.

    J'ai donc mon expression qui suit:
    avec donc le code php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match( "/(TYER)(.){1}(.*)(PRIV)/", $content, $matches );
    Pour ceux qui auraient compris, je veux donc récupérer seulement la valeur en $matches[3] qui devrais être égal à 2007.

    Or $matches[3] est égal à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2007PRIV'WM/MediaClassPrimaryID¼}`Ñ#ãâK†¡H¤*(D
    Donc mon problème est que la regex récupère le dernier PRIV qu'il trouve or j'aimerais qu'il prenne ma première.

    Si quelqu'un savait comment modifier ma regex pour récupérer seulement la valeur 2007 ?

    Je précise que cette valeur je ne sais pas ce qu'elle contient et de quelle taille elle est. Tout ce que je sais c'est qu'elle se termine dès que je rencontre mon PRIV.

    Merci d'avance et j'espère m'être fait comprendre et n'avoir fait peur à personne

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu peux utiliser le modification ungreedy u qui va prendre la plus petite expression possible au lieu de la plus longue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /(TYER)(.){1}(.*)(PRIV)/U
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup effectivement ça fonctionne comme je souhaitais

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Un ch'tit alors ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. Demande d'aide sur une expression régulière
    Par bubulemaster dans le forum Débuter
    Réponses: 4
    Dernier message: 03/04/2008, 13h19
  2. Un peu d'aide sur une expression régulière particulier
    Par ruana dans le forum Général Python
    Réponses: 2
    Dernier message: 03/06/2007, 19h04
  3. Besoin d'aide pour une expression régulière
    Par planetiss dans le forum Langage
    Réponses: 5
    Dernier message: 16/02/2006, 19h04
  4. [RegEx] Aide sur une expression régulière toute simple
    Par tchoumak dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2005, 15h46
  5. Problème sur une expression régulière
    Par Verbal-Quint dans le forum Langage
    Réponses: 6
    Dernier message: 12/11/2004, 10h54

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