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 :

Une seule expression régulière trouvée


Sujet :

Langage PHP

  1. #1
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 234
    Points : 1 897
    Points
    1 897
    Par défaut Une seule expression régulière trouvée
    Bonjour,

    J'ai la variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $answer = "<p>Ligne1 select1 [voiture11, avion11, navire11], et ensuite ligne1 select2 [voiture12, avion12, navire12].</p>
    <p>Ligne2 select1 [voiture21, avion21, navire21].</p>";
    ... et le test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ereg("\[[^]]+\]", $answer, $result);
    ... après le test le tableau nommé $result ne contient que le premier élément :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "[voiture11, avion11, navire11]"
    ... alors qu'il devrait contenir 3 éléments.

    Pourquoi cela ?

    Merci.

    A+

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    essai avec le modifieur "m" pour le multiligne.

  3. #3
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 234
    Points : 1 897
    Points
    1 897
    Par défaut
    Citation Envoyé par sabotage Voir le message
    essai avec le modifieur "m" pour le multiligne.
    C'est à dire ?

    De toute manière ce ne doit pas être cela puisqu'il y a 2 réponses pour la première ligne. A moins que je me trompe.

    A+

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ereg() etant obsolète, je te propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all("#\[.*\]#U", $answer, $result);

  5. #5
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 234
    Points : 1 897
    Points
    1 897
    Par défaut
    Citation Envoyé par sabotage Voir le message
    ereg() etant obsolète, je te propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all("#\[.*\]#U", $answer, $result);
    Merci sabotage.

    En plus un samedi soir pendant un long week-end.

    Juste une petite précision :
    Que signifie le U du pattern et où trouver un tutorial pour connaitre la syntaxe permettant d'écrire des patterns.

    A+

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le U c'est pour ungreedy, c'est a dire qu'il cherche les expressions les plus petites, sinon par défaut il prendrait tout du premier [ jusqu'au dernier ].

    Pour la syntaxe il y a de la doc un peu partout sur le net ; mais franchement c'est vaste et complexe comme écriture avec plein de subtilités

  7. #7
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 234
    Points : 1 897
    Points
    1 897
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Le U c'est pour ungreedy, c'est a dire qu'il cherche les expressions les plus petites, sinon par défaut il prendrait tout du premier [ jusqu'au dernier ].

    Pour la syntaxe il y a de la doc un peu partout sur le net ; mais franchement c'est vaste et complexe comme écriture avec plein de subtilités

    Juste avant de clore ce post : peut-on récupérer les expressions entre crochets mais sans les crochets qui ne servent que de délimiteurs ?

    Par exemple, récupérer Mon expression régulière au lieu de [Mon expression régulière].

    Merci encore.

    A+

  8. #8
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Comme ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $answer = "<p>Ligne1 select1 [voiture11, avion11, navire11], et ensuite ligne1 select2 [voiture12, avion12, navire12].</p>
    <p>Ligne2 select1 [voiture21, avion21, navire21].</p>";
    $result = array();
    preg_match_all("#\[(.*)\]#U", $answer, $result);
    print_r($result[1]);

  9. #9
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 234
    Points : 1 897
    Points
    1 897
    Par défaut
    Citation Envoyé par John Blobsmith Voir le message
    Comme ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $answer = "<p>Ligne1 select1 [voiture11, avion11, navire11], et ensuite ligne1 select2 [voiture12, avion12, navire12].</p>
    <p>Ligne2 select1 [voiture21, avion21, navire21].</p>";
    $result = array();
    preg_match_all("#\[(.*)\]#U", $answer, $result);
    print_r($result[1]);
    Désolé mais les crochets sont toujours présents.

    A+

  10. #10
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    On parle bien des crochets de $result ?

  11. #11
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 234
    Points : 1 897
    Points
    1 897
    Par défaut
    Citation Envoyé par John Blobsmith Voir le message
    On parle bien des crochets de $result ?
    Oui tout à fait.

    A+

  12. #12
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Ben y'a bien des crochets dans $result[0] mais pas dans $result[1]...

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/07/2011, 10h14
  2. Supprimer une seule expression recurente dans un champs
    Par mephilith dans le forum Requêtes
    Réponses: 9
    Dernier message: 09/02/2009, 23h37
  3. nettoyer une chaine & Expression régulière
    Par jumbay dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/10/2008, 09h18
  4. Réponses: 2
    Dernier message: 02/03/2007, 13h58
  5. Réponses: 1
    Dernier message: 24/05/2006, 15h25

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