Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Mevzek
j'aimerais savoir comment extraire x éléments correspondant à une expression regulière à partir d'une chaine de caractère.
puis les stocker dans un tableau.
(ex: extraire tous les liens href d'un source html )
Ne pas re-inventer la roue: HTML::LinkExtractor URI::Find et quelques autres...
De plus, c'est justement un mauvais exemple, on ne peut pas parser, en toute généralité, du HTML avec une expression régulière.
en fait je cherche quelque chose qui pourait être l'equivalent de la fonction preg_match_all() de php, mais en perl
Voir du côté de s///
-- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
j'aimerais savoir comment extraire x éléments correspondant à une
expression regulière à partir d'une chaine de caractère.
puis les stocker dans un tableau.
(ex: extraire tous les liens href d'un source html )
Ne pas re-inventer la roue:
HTML::LinkExtractor
URI::Find
et quelques autres...
De plus, c'est justement un mauvais exemple, on ne peut pas parser, en
toute généralité, du HTML avec une expression régulière.
en fait je cherche quelque chose qui pourait être l'equivalent de la
fonction preg_match_all() de php, mais en perl
Voir du côté de s///
--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
j'aimerais savoir comment extraire x éléments correspondant à une expression regulière à partir d'une chaine de caractère.
puis les stocker dans un tableau.
(ex: extraire tous les liens href d'un source html )
Ne pas re-inventer la roue: HTML::LinkExtractor URI::Find et quelques autres...
De plus, c'est justement un mauvais exemple, on ne peut pas parser, en toute généralité, du HTML avec une expression régulière.
en fait je cherche quelque chose qui pourait être l'equivalent de la fonction preg_match_all() de php, mais en perl
Voir du côté de s///
-- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
BillyNoGates
Oui j'ai effectivement vu qu'il y avait des modules 'tout pret', mais j'indiquais juste ca en tant qu'exemple, je vais avoir à extraire d'autres éléments que des liens. c pour ca que je posais la question. merci quand meme, je v voir du coté de s/// .
Oui j'ai effectivement vu qu'il y avait des modules 'tout pret', mais
j'indiquais juste ca en tant qu'exemple, je vais avoir à extraire
d'autres éléments que des liens. c pour ca que je posais la question.
merci quand meme, je v voir du coté de s/// .
Oui j'ai effectivement vu qu'il y avait des modules 'tout pret', mais j'indiquais juste ca en tant qu'exemple, je vais avoir à extraire d'autres éléments que des liens. c pour ca que je posais la question. merci quand meme, je v voir du coté de s/// .
Jacques Caron
Salut,
On Fri, 28 Oct 2005 15:45:02 +0200, BillyNoGates wrote:
Oui j'ai effectivement vu qu'il y avait des modules 'tout pret', mais j'indiquais juste ca en tant qu'exemple, je vais avoir à extraire d'autres éléments que des liens.
Tant que c'est du HTML et qu'il faut extraire des attributs bien définis, il convient d'utiliser un parser HTML et pas des expressions régulières. Il y a beaucoup de subtilités en HTML qui font qu'une expression régulière serait excessivement complexe pour arriver à résister à tous les cas de figure.
Jacques. -- Oxado http://www.oxado.com/
Salut,
On Fri, 28 Oct 2005 15:45:02 +0200, BillyNoGates
<aurelien.jacak@gmail.com> wrote:
Oui j'ai effectivement vu qu'il y avait des modules 'tout pret', mais
j'indiquais juste ca en tant qu'exemple, je vais avoir à extraire
d'autres éléments que des liens.
Tant que c'est du HTML et qu'il faut extraire des attributs bien définis,
il convient d'utiliser un parser HTML et pas des expressions régulières.
Il y a beaucoup de subtilités en HTML qui font qu'une expression régulière
serait excessivement complexe pour arriver à résister à tous les cas de
figure.
On Fri, 28 Oct 2005 15:45:02 +0200, BillyNoGates wrote:
Oui j'ai effectivement vu qu'il y avait des modules 'tout pret', mais j'indiquais juste ca en tant qu'exemple, je vais avoir à extraire d'autres éléments que des liens.
Tant que c'est du HTML et qu'il faut extraire des attributs bien définis, il convient d'utiliser un parser HTML et pas des expressions régulières. Il y a beaucoup de subtilités en HTML qui font qu'une expression régulière serait excessivement complexe pour arriver à résister à tous les cas de figure.
Jacques. -- Oxado http://www.oxado.com/
Antoun
BillyNoGates wrote:
Bonjour,
j'aimerais savoir comment extraire x éléments correspondant à une expression regulière à partir d'une chaine de caractère.
puis les stocker dans un tableau.
(ex: extraire tous les liens href d'un source html )
en fait je cherche quelque chose qui pourait être l'equivalent de la fonction preg_match_all() de php, mais en perl
Merci d'avance
par exemple :
my @tablo = () ; while ($texte =~ m/ta regex/g) { push @tablo, $& ; }
ou bien, pour éviter la pénalité de performance de $& :
my @tablo = () ; while ($texte =~ m/(ta regex)/g) { push @tablo, $1 ; }
L'important est de ne pas oublier /g, sinon tu as une boucle infinie...
BillyNoGates wrote:
Bonjour,
j'aimerais savoir comment extraire x éléments correspondant à une
expression regulière à partir d'une chaine de caractère.
puis les stocker dans un tableau.
(ex: extraire tous les liens href d'un source html )
en fait je cherche quelque chose qui pourait être l'equivalent de la
fonction preg_match_all() de php, mais en perl
Merci d'avance
par exemple :
my @tablo = () ;
while ($texte =~ m/ta regex/g) {
push @tablo, $& ;
}
ou bien, pour éviter la pénalité de performance de $& :
my @tablo = () ;
while ($texte =~ m/(ta regex)/g) {
push @tablo, $1 ;
}
L'important est de ne pas oublier /g, sinon tu as une boucle infinie...
À (at) Sat, 29 Oct 2005 14:06:18 +0200, Antoun écrivait (wrote):
ou bien, pour éviter la pénalité de performance de $& :
my @tablo = () ; while ($texte =~ m/(ta regex)/g) { push @tablo, $1 ; }
L'important est de ne pas oublier /g, sinon tu as une boucle infinie...
Ici, l'opérateur '=~' est utilisé dans un contexte scalaire. Il retourne donc vrai ou faux ce qui permet à 'while' de savoir si il doit continuer ou non.
Le même opérateur utilisé dans un contexte de liste retourne tous les groupes matchés. Une écriture simplifiée est donc :
my @tablo = $texte =~ m/(regex)/g;
La boucle est réalisée implicitement grâce au /g.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Sat, 29 Oct 2005 14:06:18 +0200,
Antoun <antoun@free.fr> écrivait (wrote):
ou bien, pour éviter la pénalité de performance de $& :
my @tablo = () ;
while ($texte =~ m/(ta regex)/g) {
push @tablo, $1 ;
}
L'important est de ne pas oublier /g, sinon tu as une boucle infinie...
Ici, l'opérateur '=~' est utilisé dans un contexte scalaire. Il
retourne donc vrai ou faux ce qui permet à 'while' de savoir si il
doit continuer ou non.
Le même opérateur utilisé dans un contexte de liste retourne tous les
groupes matchés. Une écriture simplifiée est donc :
my @tablo = $texte =~ m/(regex)/g;
La boucle est réalisée implicitement grâce au /g.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Sat, 29 Oct 2005 14:06:18 +0200, Antoun écrivait (wrote):
ou bien, pour éviter la pénalité de performance de $& :
my @tablo = () ; while ($texte =~ m/(ta regex)/g) { push @tablo, $1 ; }
L'important est de ne pas oublier /g, sinon tu as une boucle infinie...
Ici, l'opérateur '=~' est utilisé dans un contexte scalaire. Il retourne donc vrai ou faux ce qui permet à 'while' de savoir si il doit continuer ou non.
Le même opérateur utilisé dans un contexte de liste retourne tous les groupes matchés. Une écriture simplifiée est donc :
my @tablo = $texte =~ m/(regex)/g;
La boucle est réalisée implicitement grâce au /g.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>