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 :

Regex tout simple [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Points : 133
    Points
    133
    Par défaut Regex tout simple
    Bonjour,

    Je souhaite capturer tout ce qui se trouve entre <td> et </td>

    <?php
    $str='<table><tr><td>A</td><td>B</td></tr></table>';
    ereg('<td>(.*)</td>', $str, $tab);
    ?>

    Mon problème se situe au niveau du .* car voici le résultat
    Array ( [0] => ABC [1] => ABC )

    Comment indiquer au regex de s'arréter à chaque </td> rencontré ?

    Merci.

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('/<td>(.*)</td>/U', $str, $tab);
    Ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('/<td>(.*)</td>/U', $str, $tab, PREG_SET_ORDER);

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Points : 133
    Points
    133
    Par défaut
    Merci Kirkis,

    U était l'option qui me manquait.

    Celle-ci convient parfaitement avec le \ à ne pas oublier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('/<td>(.*)<\/td>/U', $str, $tab);

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Ah, oui, en effet... Désolé.
    J'aurais dû t'indiquer un délimiteur différent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('#<td>(.*)</td>#U', $str, $tab);
    De cette manière, il n'est pas utile d'échapper le slash et ça simplifie la lecture.

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

Discussions similaires

  1. Recherche d'une regex toute simple (mais pas pour moi)
    Par rambc dans le forum Général Python
    Réponses: 7
    Dernier message: 15/04/2009, 15h23
  2. creation d'une procedure ou fonction toute simple?
    Par atlas2003 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 16/11/2005, 14h56
  3. [debutant] Frame tout simple ?
    Par Invité dans le forum JBuilder
    Réponses: 1
    Dernier message: 05/07/2005, 16h00
  4. un algo tout simple de randomisation (enfin, j'espere)
    Par orichimaru dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 30/11/2004, 22h15
  5. [langage] Problème tout simple
    Par marouanitos dans le forum Langage
    Réponses: 5
    Dernier message: 24/09/2003, 11h25

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