enlever des caractères après un test
Le
pluton
bonjour,
voilà dans un fichier texte, j'ai plusieurs occurrences d'une chaîne
de caractères que je vais simplifier par "toto".
Après "toto", il y a parfois une numérotation entre parenthèses comme
suit:
[texte]
toto(1.34)
[texte]
bien sûr, la numérotation entre parenthèses n'est jamais la même. J=
e
sais donc qu'entre parenthèses, il y a des "1", "2", "3", "4", "5",
"6", "7", "8", "9" et un "." Je ne connais pas bien le perl mais en
cherchant sur internet, je sais trouver les "toto" par contre, je n'ai
pas trouvé comment tester ce qui arrive juste après "toto"? J'ai vu la
commande "next" mais peut-être y a-t-il une technique particulière
pour ce que je souhaite faire.
merci pour vos commentaires.
voilà dans un fichier texte, j'ai plusieurs occurrences d'une chaîne
de caractères que je vais simplifier par "toto".
Après "toto", il y a parfois une numérotation entre parenthèses comme
suit:
[texte]
toto(1.34)
[texte]
bien sûr, la numérotation entre parenthèses n'est jamais la même. J=
e
sais donc qu'entre parenthèses, il y a des "1", "2", "3", "4", "5",
"6", "7", "8", "9" et un "." Je ne connais pas bien le perl mais en
cherchant sur internet, je sais trouver les "toto" par contre, je n'ai
pas trouvé comment tester ce qui arrive juste après "toto"? J'ai vu la
commande "next" mais peut-être y a-t-il une technique particulière
pour ce que je souhaite faire.
merci pour vos commentaires.

Poser une question


$str =~ /toto([0-9.]+)/;
Si tu veux récupérer la valeur entre parenthèses :
$str =~ /toto(([0-9.]+))/; # la valeur se trouve dans $1
--
XAv
Disponible au 01/06/2010
d'accord, merci, voilà ma routine finale :
open(IN,'File.txt') || die "Impossible d'ouvrir $file: $!";
open (FSOR, '> File2.txt');
$i=0;
while ($ligne=<IN>) {
if ($ligne !~ /toto([0-9.]+)/){
print FSOR "$ligne";
}
else {
print FSOR "toton";
}
}
sachant que file.txt contient
ifogijre gofij ofi joif joifj foijroif j
f fi joijf oejf oierjf oiejf
toto(1.33)
toto(1.28)
toto(3.79)
jri jr oijoir jr joerj orezj orjezor jzoej
zeri jzoire jzoierj oizejr
et le fichier file2.txt
ifogijre gofij ofi joif joifj foijroif j
f fi joijf oejf oierjf oiejf
toto
toto
toto
jri jr oijoir jr joerj orezj orjezor jzoej
zeri jzoire jzoierj oizejr
présents après "toto" ?
merci
Je ne vois pas vraiment le rapport avec votre demande initiale (vous ne
récupérez finalement pas ce qui est entre parenthèses), mais si ça répond à
votre besoin on ne va pas chercher plus loin :)
--
Denis Dordoigne
Membre de l'April - promouvoir et défendre le logiciel libre - april.org
Rejoignez maintenant plus de 5000 personnes, associations, entreprises et
collectivités qui soutiennent notre action
c'est vrai que ça n'était pas très bien formulé. Je voulais tester ce
qui arrivait après toto
pour l'enlever si c'était une numérotation entre parenthèse.