[Perl] Split d'une chaine de caractères
phoenix1984
Messages postés
30
Statut
Membre
-
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour,
Je cherche à extraire des valeurs numériques d'un texte. Ces valeurs numériques sont disséminés dans le texte, et varient.
Exemple de texte:
test.log
chapitre1
blablablablablabla
blabla 28 blabla
blablablablablabla
chapritre2
blablablablablabla
blabla 85 blabla
blablablablablabla
chapritre2
blablablablablabla
blabla 44 blabla
blablablablablabla
Ici, il faudrait chercher la section "chapitre1" et récupérer la PREMIERE valeur numérique dans le texte qui suit, et faire de même pour chaque "chapitre" rencontré ...
j'ai fait un petit essaie avec "split" mais sans réel succès ..
D'avance merci ! :)
Je cherche à extraire des valeurs numériques d'un texte. Ces valeurs numériques sont disséminés dans le texte, et varient.
Exemple de texte:
test.log
chapitre1
blablablablablabla
blabla 28 blabla
blablablablablabla
chapritre2
blablablablablabla
blabla 85 blabla
blablablablablabla
chapritre2
blablablablablabla
blabla 44 blabla
blablablablablabla
Ici, il faudrait chercher la section "chapitre1" et récupérer la PREMIERE valeur numérique dans le texte qui suit, et faire de même pour chaque "chapitre" rencontré ...
j'ai fait un petit essaie avec "split" mais sans réel succès ..
#!/usr/bin/perl -i.orig use strict; use warnings; my @table = (test.log); my @table = split(/[a-z]/g,$test); print "$table[0]\n"; print "$table[1]\n"; print "$table[2]\n";
D'avance merci ! :)
A voir également:
- [Perl] Split d'une chaine de caractères
- Split cam - Télécharger - Messagerie
- Caractères spéciaux - Guide
- Plus de chaine tv - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caracteres speciaux - Guide
3 réponses
Salut,
Je n'ai pas compris.
Peut tu donner un exemple concret.
Donc un exemple de ton fichier réel et aussi ce que tu veux obtenir comme résultat.
Merci.
Je n'ai pas compris.
Peut tu donner un exemple concret.
Donc un exemple de ton fichier réel et aussi ce que tu veux obtenir comme résultat.
Merci.
Salut Lami20j :)
Petit extrait de la page web avec ses balises xml ..
Je récupère la page web dans un fichier. L'objectif est ensuite de la parcourir pour en retirer 2 infos :
"slot-x" et la valeur "level" associée ... Donc ici, implémenter un fichier avec :
slot-1, level 378
slot-2, level 346
...
..
.
Le nombre de slot est déternimé, mais il faudrait récupérer la valeur level à chaque fois.
Merci pour ton aide en tout cas en espérant avoir été un peu plus clair ..
Phoenix
Petit extrait de la page web avec ses balises xml ..
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-fr"> <div data-id="0" data-type="1" class="slot slot-1 item-quality-4" style=" left: 0px; top: 0px;"><span class="level">378</span></div> <div data-id="1" data-type="2" class="slot slot-2 item-quality-3" style=" left: 0px; top: 58px;"><span class="level">346</span></div> </html>
Je récupère la page web dans un fichier. L'objectif est ensuite de la parcourir pour en retirer 2 infos :
"slot-x" et la valeur "level" associée ... Donc ici, implémenter un fichier avec :
slot-1, level 378
slot-2, level 346
...
..
.
Le nombre de slot est déternimé, mais il faudrait récupérer la valeur level à chaque fois.
Merci pour ton aide en tout cas en espérant avoir été un peu plus clair ..
Phoenix
Salut,
Voici un exemple
Exécution de script
Voici un exemple
:~/perl$ cat slot.txt
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-fr">
<div data-id="0" data-type="1" class="slot slot-1 item-quality-4" style=" left: 0px; top: 0px;"><span class="level">378</span></div>
<div data-id="1" data-type="2" class="slot slot-2 item-quality-3" style=" left: 0px; top: 58px;"><span class="level">346</span></div>
</html>
:~/perl$ cat slot.pl
#!/usr/bin/perl
use strict;use warnings;
open F,"slot.txt" or die "E/S : $!\n";
my %h;
while(<F>){
next unless
/class\s*=\s*"slot\s*(slot-\d+).*"(level)">(\d+)\s*.*/;
$h{$1}="$2 $3";
}
print "$_, $h{$_}\n" for sort keys %h;
__END__
Exécution de script
:~/perl$ perl slot.pl slot-1, level 378 slot-2, level 346