En Perl : Récuperer un texte entre 2 balises

Fermé
Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006 - 28 mars 2006 à 22:49
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 31 mars 2006 à 09:49
Bonsoir, je souhaiterai connaitre le code en Perl permettant de récupérer un texte contenu entre 2 balises (HTML, PHP, ...).
Merci d'avance

4 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
28 mars 2006 à 23:17
Salut,
#! /usr/bin/perl

use warnings;
@ARGV = qw (/home/lamitest/affich-2168110-en-perl-recuperer-un-texte-entre-2-balises.htm);

while (<>){
  /<([^>]*)>/;
print "$1\n";
}

____________________________________________________________
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
META NAME="ROBOTS" content="index,follow"
META NAME="subject" content="Comment ça marche? [L'informatique] - <? echo Forum programmation ?
................................
...........................
Cependant ce n'est pas complet. Entre 2 balises on peut avoir des chaînes de caracteres entre " " entre ' ', on peut avoir aussi '>'.
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
29 mars 2006 à 09:34
entre 2 balises...
Moi la je comprends plutot : <test>ce qu'on veut lire </test>
Si c'est ca, le /<([^>]*)>/; devient :
/<[^>]+>([^<]+)</;


En tous cas, a voir, je ne sais plus si il ne faut pas mettre des \ avant les > et < .. a test
;D
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 mars 2006 à 17:19
Salut,

tu as raison. J'ai mal interpreté.

De toute façon c'est assez complexe.

Par exemple
<balise>a recuperer</balise><balise1>encore
à recuperer</bailse2><balise3>on a x < y à recuperer</balise3>



lami20j
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200 > lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019
30 mars 2006 à 09:53
<balise3>on a x < y à recuperer</balise3>
j'avoue ce cas la est bien relou..
Mais je pense qu'il y a p'tet moyen en mettant un
/\<[^\>]+\>([^{\<\/}]+)\<\//;

je ne suis plus bien sur des {} poir définir un ensemble de caractères...
et j'ai remis les \ devant les < et > car il les faut...
mais c'est a voir
-
Zep3k!GnO
On est des rangers mec, des rangers...
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
31 mars 2006 à 00:10
Re,

c'est pour ça que c'est complex.
Entre les balises et à l'intérieur des balises on peut avoir n'importe quoi ou presque.

Donc personnellement quand je travaille avec du texte brut je préfère regarder la structure de texte et de ne pas travailler à l'aveugle.

Pour les cas que tu as imagine ta regex doit fonctionner, en revanche elle ne va pas fonctionner dans les cas dont tu n'as pas penser.

Bonne soirée,

lami20j
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
31 mars 2006 à 09:49
en revanche elle ne va pas fonctionner dans les cas dont tu n'as pas penser.
normal :D je l'ai faite en speed, comme ça..(sans trop y réfléchir 3 piges.. j'avoue :P )
Aller, bonne journée, @+
0