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 :

Problème de masque [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Beldom
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 63
    Points : 70
    Points
    70
    Par défaut Problème de masque
    Bonjour

    Je souhaite tester la présence d'une chaine qui ressemble à cela :

    /*<Texte>*/ if

    Ou le nombre d'espace entre le if et la fin du commentaire varie de 0 à n.

    J'ai tenté trucs avec ereg et les reg exp, mais je n'arrive pas à obtenir ce qu'il me faut...

    J'ai pensé à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ereg("^[/*<Texte>*/] *if", $var)
    Mais ca ne marche pas... Je ne comprend pas comment je dois m'y prendre :S

    Merci d'avance de votre aide.

  2. #2
    Fabouney
    Invité(e)
    Par défaut
    Salut,

    alors déjà utilise preg_match_all (pour retourner tout les resultat qui vérifi le masque dans la chaine).

    pour faire ce que tu doi faire moi je ferais un truc comme:

    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
    <?php
    $chaine = <<< EOF
    fkjdskf dsfn jdsfnj dsfj nsdjf ndsjf 
    /*   commentaire */
    dsfdsfkdsfdsf 
    /*<Comment_1>*/   if(tartanpion==1)
    {
    /*<Comment_2>*/
    }
    else
    }
    EOF;
     
    $pattern='/\/\*\W+(.+)\W+\*\//i';
    if(preg_match_all($pattern, $chaine, $result))
    {
    	echo '<pre>';
    	print_r($result);
    	echo '</pre>';
    }
    ?>
    resultat:
    Array
    (
    [0] => Array
    (
    [0] => /* <<>>commentaire */
    [1] => /**/
    [2] => /**/
    )

    [1] => Array
    (
    [0] => commentaire
    [1] => Comment_1
    [2] => Comment_2
    )

    )

    voila dis moi quoi.
    Cordialement.

  3. #3
    Membre régulier Avatar de Beldom
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 63
    Points : 70
    Points
    70
    Par défaut
    Je ne cherche pas à récupérer les chaines mais bien à tester leur présence dans une autre chaine.
    Il s'agit ici du parcours d'un fichier, pour tester la présence de balises entre commentaires..


    Et après tests, des lignes sans if sont prises en compte, or si le if est absent, je dois considérer la ligne comme non valide...

  4. #4
    Fabouney
    Invité(e)
    Par défaut
    et bien dans ce cas prend juste mon pattern, si j'ai reussi à récupérer les commentaire, c'est que je peut savoir qu'il en existe ....

  5. #5
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( preg_match("#^/\*<Texte>\*/\s*if#", $var) )

  6. #6
    Membre régulier Avatar de Beldom
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 63
    Points : 70
    Points
    70
    Par défaut
    Problème résolu grâve à votre aide.
    Merci beaucoup

  7. #7
    Membre régulier Avatar de Beldom
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 63
    Points : 70
    Points
    70
    Par défaut
    Je rouvre car exactement dans le même type, si j'ai réussis à comprendre pas mal de truc sur comment marchent les regexp, j'ai de nouveau un problème, car si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("#^/\*<\w+>\*/\s*if#", $var);
    fonctionne, je n'arrive pas à faire passer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("#^/\*<\w+>\*/\s*}#", $var);
    J'ai essayé en echappant l'accolade ( "\}" ), mais à chaque fois, la regexp ne veut pas la prendre en compte...

    Quelqu'un a-t-il une idée parceque là je sèche...

  8. #8
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Il est nécéssaire de l'échapper oui après, je ne sais pas pourquoi elle te semble ignorée, peut etre que ce n'est pas exactement ce que tu as je ne sais pas donne un peu le code que tu as et celui que tu veux.

  9. #9
    Membre régulier Avatar de Beldom
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 63
    Points : 70
    Points
    70
    Par défaut
    J'ai trouvé une solution de remplacement... Pas forcément parfaite, mais ca ira bien ^^

    Merci de votre aide

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

Discussions similaires

  1. [JtextField]Creer un masque pour Ip
    Par bibx dans le forum Composants
    Réponses: 8
    Dernier message: 11/01/2005, 17h31
  2. Réponses: 7
    Dernier message: 17/07/2003, 11h00
  3. flashMX pb avec les masques
    Par annsoo dans le forum Flash
    Réponses: 2
    Dernier message: 12/05/2003, 12h22
  4. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49
  5. Bas les masques
    Par benj63 dans le forum C++Builder
    Réponses: 8
    Dernier message: 03/07/2002, 17h05

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