Expression regulière avec perl
Résolu
Bonjour,
Je cherche à identifier des numeros dans un text puis de les remplacer par rien par le script ci-desous mais le script ne marche pas. merci de m'indiquer ce qui ne vas pas si possible.
#!/usr/bin/perl -w
open(FILEINPUT,"$ARGV[0]") || die "erreur de lecture de fichier :$!";
while ($ligne=<FILEINPUT>){
if ($ligne=~ s/[0-9]//g){
print $ligne;
}
}
close(FILEINPUT);
Je cherche à identifier des numeros dans un text puis de les remplacer par rien par le script ci-desous mais le script ne marche pas. merci de m'indiquer ce qui ne vas pas si possible.
#!/usr/bin/perl -w
open(FILEINPUT,"$ARGV[0]") || die "erreur de lecture de fichier :$!";
while ($ligne=<FILEINPUT>){
if ($ligne=~ s/[0-9]//g){
print $ligne;
}
}
close(FILEINPUT);
5 réponses
-
Contributeurhello
qu'est ce qui ne marche pas ? -
Hi, Je n'arrive pas a reconaitre les nombres dans un text pour les remplacer par rien. Quand je passe le programme sur le text il me sort le text sans modification. Ce que je souhaite faire c'est de passer le script sur le text pour que l'expression reg. remplace les nombre par rien. Je crois mon problème se trouve au niveau 'print $ligne
open(FILEINPUT,"$ARGV[0]") || die "erreur de lecture de fichier :$!";
while ($ligne=<FILEINPUT>){
# on cherche une balise : <[^>]+>
$ligne=~s/0-9//g;
print $ligne;
}
close(FILEINPUT); -
Contributeurchez moi, il fonctionne
$ cat a3 a 1 a 2 a 3 b 2 b 4 b8 b 0 c 10 234 f 33 g 4 $ ./p4 a3 a a a b b b b c f g $
-
Merci Dubcek, ça fonctionne aussi finalement. J'ai remplacer l'expr. reg. par ça $ligne=~s/[0-9]//g;
-
Contributeuravec le if, il n'affiche que les lignes qui contenaient un chiffre