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 :

Extraire texte début fixe, fin variable [RegEx]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Extraire texte début fixe, fin variable
    salut,

    Voilà mon problème, j'ai des données sous cette forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <td align="left" valign="top"> 
    <p>balablabla</p><BR/>
    CE QUE JE VEUX EXTRAIRE
    
    
        <p style="text-ali
    en rouge : ce qui est fixe
    en vert : parfois ce n'est pas <p mais <br\>
    Je ne sais pas si c'est important, mais il y a effectivement des sauts de lignes avant le <p

    Dans un pemier temps je tente de trouver en me limitant à la balise <p.
    Après plusieurs recherche, je n'arrive pas à extraire, j'ai tenté avec cette solution
    http://www.developpez.net/forums/d92...ction-donnees/ mais rien à faire.

    Voici mon code pour tenter d'extraire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $reg = '#</p><BR/>(.*)<p#';
    $chars = preg_split($reg, $livre_content, -1);
    print_r($chars);
    et mes différents tests:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reg = '#</p><BR/>(.*)\<p#';
    $reg = '#</p><BR/>(.*)<p(.*)#';
    Donc au final je cherche de l'aide pour extraire tout ce qui se trouve entre </p><BR/> XXXXX et <p ou <BR/>

    Vous avez une idée ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (/p><BR/>)([^>]*(?=<p))
    le texte sera capturé dans $2
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    merci spacefrog, mais ça ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reg='#(</p><BR/>)([^>]*(?=<p))#';
    me sort tout le texte qui est derrière j'ai tenté de modifier, mais j'ai tout le texte qui ressort encore

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php 
    $chaine='<td align="left" valign="top"> 
    <p>balablabla</p><BR/>
    CE QUE JE VEUX EXTRAIRE
    
    
    jusqu\'ici<p style="text-ali';
     
    $reg="~(/p><BR/>)([^>]*(?=<p))~";
    $s = preg_match($reg,$chaine,$matches);
    echo $matches[2];
    ?>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    yes merci spadefrog ! Celà fonctionne dans mon premier cas, mais quand la chaine se termine par un <br> et non <p ? Comment rajouter une sorte de "ou" dedans ?

    pour rappel, j'ai 2 cas de figures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <td align="left" valign="top"> 
    <p>blablablablablabla</p><BR/>
    CE QUE JE VEUX EXTRAIRE
        <p style="text-ali
    OU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <td align="left" valign="top"> 
    <p>blablablablablabla</p><BR/>
    CE QUE JE VEUX EXTRAIRE
        <BR/>

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reg="~(/p><BR/>)([^>]*(?=<(p|(br))))~i";
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Yes ça marche ! Merci Spacefrog !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/05/2015, 09h37
  2. Supprimer ou extraire texte et variable d'une cellule
    Par Frululu dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/10/2013, 16h09
  3. Réponses: 3
    Dernier message: 11/10/2011, 16h56
  4. [PowerShell] Ajout mot début et fin ligne d'un fichier texte
    Par furth dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 23/07/2011, 20h50
  5. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56

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