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 :

Récupérer des portions de texte


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Points : 64
    Points
    64
    Par défaut Récupérer des portions de texte
    Bonjour,

    J'ai tu texte sous cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <body>
    code html code html code html...
    <div>1236578490 du code html</div>
    du code html
    <div>du code html</div>
    du code html
    <div>1236578490 du code html</div>
    du code html ... etc</body>
    Mon but est de repérer les blocs "<div>[0-9]{10}.+</div>" et de supprimer tout le reste Mais si je mets ça tel quel, ça me prends de la première correspondance jusqu'au dernier </div>, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div>1236578490 du code html</div>
    du code html
    <div>du code html</div>
    du code html
    <div>1236578490 du code html</div>
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div>1236578490 du code html</div><div>1236578490 du code html</div>
    J'ai lu et essayé de m'inspirer de cette page sans succès : http://blog.lilhoot.eu/regex-et-preg...les-chaines,a3

    Je suppose que je dois faire quelque-chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $text = preg_replace('/.*(<div>[0-9]{10}((?!<\/div>).)+<\/div>).*/U', '$1', $text);
    mais .... non

    Où est-ce que ça ne va pas ?
    Merci bien par avance pour vos conseils !!

  2. #2
    Membre habitué Avatar de denissay
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 103
    Points : 125
    Points
    125
    Par défaut
    Si tu veux ne récupérer que ces paragraphes, tu peux utiliser tous simplement ta première expression en activant la fonction "non-gourmande" U (ou encore utilises la forme non gourmande ".+?")

    Si tu veux tous supprimer sauf ces paragraphes, tu peux donc utiliser cette version modifiée "<div>([0-9]{10}.+)</div>(*SKIP)(*F)|.*" qui va séléctionner tous sauf ce qui a été matché par l'expression à gauche du "|" => DEMO

    De toute façon, si tu as beacoup de texte html à traiter comme ça, utilises plutôt un parseur, c'est plus adapté pour cela
    Une réponse utile vous a aidé ? N'oubliez pas le
    Votre problème est résolu ? N'oubliez pas le

Discussions similaires

  1. [RegEx] Extraire des portions de textes d'un fichier
    Par apt dans le forum Langage
    Réponses: 11
    Dernier message: 23/07/2011, 00h50
  2. Récupérer des données d'un fichier texte
    Par tiantian dans le forum Langage
    Réponses: 4
    Dernier message: 11/07/2007, 11h45
  3. Réponses: 10
    Dernier message: 23/04/2007, 14h18
  4. Réponses: 5
    Dernier message: 21/09/2006, 11h50
  5. Réponses: 2
    Dernier message: 16/01/2006, 19h34

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