Rechercher : dans
Par :

En Perl : Récuperer un texte entre 2 balises

Dernière réponse le 31 mar 2006 à 09:49:34 Tribute2U, le 28 mar 2006 à 22:49:18 
 Signaler ce message aux modérateurs

Bonsoir, je souhaiterai connaitre le code en Perl permettant de récupérer un texte contenu entre 2 balises (HTML, PHP, ...).
Merci d'avance

Meilleures réponses pour « En Perl : Récuperer un texte entre 2 balises » dans :
Les balises de structure VoirLes balises peuvent être réparties en 2 classes : celles qui modifient la structure de la page et celles qui modifient le style du texte. Parmi les balises de structure on trouve les en-têtes, les paragraphes, les listes ... Les attributs Les...
Les balises HTML VoirHTML, un langage à balises Le HTML n'est pas un langage de programmation. Il s'agit d'un langage permettant de décrire la mise en page et la forme d'un contenu rédigé en texte simple. Une page HTML est ainsi un simple fichier texte...
Les balises de style VoirQu'est-ce qu'une balise de style? Les balises de style modifient la typographie du texte. Elles peuvent être imbriquées dans d'autres balises de style de la même façon qu'on le ferait avec un traitement de texte. Voici une liste de balises de...

1

lami20j, le 28 mar 2006 à 23:17:09

Salut,

#! /usr/bin/perl

use warnings;
@ARGV = qw (/home/lamitest/affich-2168110-en-perl-recuperer-un-texte-en­tre-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 '>'.

Répondre à lami20j

2

Zep3k!GnO, le 29 mar 2006 à 09:34:44

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 Zep3k!GnO
On est des rangers mec, des rangers...

Répondre à Zep3k!GnO

3

lami20j, le 29 mar 2006 à 17:19:02

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

Répondre à lami20j

4

Zep3k!GnO, le 30 mar 2006 à 09:53:29

<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...

Répondre à Zep3k!GnO

5

lami20j, le 31 mar 2006 à 00:10:11

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

Répondre à lami20j

6

 Zep3k!GnO, le 31 mar 2006 à 09:49:34

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, @+ Zep3k!GnO

On est des rangers mec, des rangers...

Répondre à Zep3k!GnO