voil=E0 dans un fichier texte, j'ai plusieurs occurrences d'une cha=EEne
de caract=E8res que je vais simplifier par "toto".
Apr=E8s "toto", il y a parfois une num=E9rotation entre parenth=E8ses comme
suit:
[texte]
toto(1.34)
[texte]
bien s=FBr, la num=E9rotation entre parenth=E8ses n'est jamais la m=EAme. J=
e
sais donc qu'entre parenth=E8ses, 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=E9 comment tester ce qui arrive juste apr=E8s "toto"? J'ai vu la
commande "next" mais peut-=EAtre y a-t-il une technique particuli=E8re
pour ce que je souhaite faire.
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 <http://www.xavierhumbert.net/perso/CV2.html>
pluton
On 21 nov, 06:57, (Xavier) wrote:
pluton wrote: > comment tester ce qui arrive juste après "toto"?
$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 <http://www.xavierhumbert.net/perso/CV2.html>
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
On 21 nov, 06:57, xav...@groumpf.org (Xavier) wrote:
pluton <plutones...@gmail.com> wrote:
> comment tester ce qui arrive juste après "toto"?
$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
<http://www.xavierhumbert.net/perso/CV2.html>
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
pluton wrote: > comment tester ce qui arrive juste après "toto"?
$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 <http://www.xavierhumbert.net/perso/CV2.html>
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
pluton
à ce propos, comment ajouter l'espace " " dans la liste des caractères présents après "toto" ?
merci
à ce propos, comment ajouter l'espace " " dans la liste des caractères
présents après "toto" ?
à ce propos, comment ajouter l'espace " " dans la liste des caractères présents après "toto" ?
merci
Denis Dordoigne
Bonjour,
while ($ligne=<IN>) {
if ($ligne !~ /toto([0-9.]+)/){
print FSOR "$ligne"; }
else {
print FSOR "toton";
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
Bonjour,
while ($ligne=<IN>) {
if ($ligne !~ /toto([0-9.]+)/){
print FSOR "$ligne";
}
else {
print FSOR "toton";
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
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
pluton
> 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 :)
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.
> 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 :)
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.
> 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 :)
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.
Olivier Miakinen
Le 21/11/2009 15:49, pluton a écrit :
à ce propos, comment ajouter l'espace " " dans la liste des caractères présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
merci
De rien.
-- Olivier Miakinen
Le 21/11/2009 15:49, pluton a écrit :
à ce propos, comment ajouter l'espace " " dans la liste des caractères
présents après "toto" ?
à ce propos, comment ajouter l'espace " " dans la liste des caractères présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
merci
De rien.
-- Olivier Miakinen
pluton
On 21 nov, 14:47, Olivier Miakinen <om+ wrote:
Le 21/11/2009 15:49, pluton a écrit :
> à ce propos, comment ajouter l'espace " " dans la liste des caractè res > présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
ah ? j'ai essayé et ah oui mais non, ça n'est pas exactement la même situation. J'ai vu que "espace" pouvait être traduit par s en perl, donc c'est ce que j'ai utilisé. Votre méthode fonctionne pour n'importe que nombre d'espaces ?
On 21 nov, 14:47, Olivier Miakinen <om+n...@miakinen.net> wrote:
Le 21/11/2009 15:49, pluton a écrit :
> à ce propos, comment ajouter l'espace " " dans la liste des caractè res
> présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
ah ? j'ai essayé et ah oui mais non, ça n'est pas exactement la même
situation.
J'ai vu que "espace" pouvait être traduit par s en perl, donc c'est
ce que j'ai utilisé.
Votre méthode fonctionne pour n'importe que nombre d'espaces ?
> à ce propos, comment ajouter l'espace " " dans la liste des caractè res > présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
ah ? j'ai essayé et ah oui mais non, ça n'est pas exactement la même situation. J'ai vu que "espace" pouvait être traduit par s en perl, donc c'est ce que j'ai utilisé. Votre méthode fonctionne pour n'importe que nombre d'espaces ?
espie
In article , pluton wrote:
On 21 nov, 14:47, Olivier Miakinen <om+ wrote:
Le 21/11/2009 15:49, pluton a écrit :
> à ce propos, comment ajouter l'espace " " dans la liste des caractères > présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
ah ? j'ai essayé et ah oui mais non, ça n'est pas exactement la même situation. J'ai vu que "espace" pouvait être traduit par s en perl, donc c'est ce que j'ai utilisé.
Non, s ca n'est pas forcement un caractere espace, ca peut etre un espace, une tabulation, encore autre chose qui te donne du blanc a l'ecran.
Pour bien comprendre ce que tu veux faire, faudra que tu regardes un peu ton fichier a la loupe. Une construction telle que s ne correspondra qu'a un seul caractere. Si tu veux "un ou plus", c'est s+ qu'il te faut.
In article <b389494d-46fb-47dc-86ca-cb9988dd2edc@p8g2000yqb.googlegroups.com>,
pluton <plutonesque@gmail.com> wrote:
On 21 nov, 14:47, Olivier Miakinen <om+n...@miakinen.net> wrote:
Le 21/11/2009 15:49, pluton a écrit :
> à ce propos, comment ajouter l'espace " " dans la liste des caractères
> présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
ah ? j'ai essayé et ah oui mais non, ça n'est pas exactement la même
situation.
J'ai vu que "espace" pouvait être traduit par s en perl, donc c'est
ce que j'ai utilisé.
Non, s ca n'est pas forcement un caractere espace, ca peut etre un espace,
une tabulation, encore autre chose qui te donne du blanc a l'ecran.
Pour bien comprendre ce que tu veux faire, faudra que tu regardes un peu
ton fichier a la loupe. Une construction telle que s ne correspondra qu'a
un seul caractere. Si tu veux "un ou plus", c'est s+ qu'il te faut.
> à ce propos, comment ajouter l'espace " " dans la liste des caractères > présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
ah ? j'ai essayé et ah oui mais non, ça n'est pas exactement la même situation. J'ai vu que "espace" pouvait être traduit par s en perl, donc c'est ce que j'ai utilisé.
Non, s ca n'est pas forcement un caractere espace, ca peut etre un espace, une tabulation, encore autre chose qui te donne du blanc a l'ecran.
Pour bien comprendre ce que tu veux faire, faudra que tu regardes un peu ton fichier a la loupe. Une construction telle que s ne correspondra qu'a un seul caractere. Si tu veux "un ou plus", c'est s+ qu'il te faut.
Olivier Miakinen
Le 22/11/2009 02:39, pluton a écrit :
> à ce propos, comment ajouter l'espace " " dans la liste des caractères > présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
ah ? j'ai essayé et ah oui mais non, ça n'est pas exactement la même situation. J'ai vu que "espace" pouvait être traduit par s en perl, donc c'est ce que j'ai utilisé.
Problablement ton espace n'était pas une simple espace, mais peut-être une tabulation ou un autre caractère blanc.
Votre méthode fonctionne pour n'importe que nombre d'espaces ?
Oui, exactement comme pour les chiffres, grâce au « + » qui suit le crochet fermant.
-- Olivier Miakinen
Le 22/11/2009 02:39, pluton a écrit :
> à ce propos, comment ajouter l'espace " " dans la liste des caractères
> présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
ah ? j'ai essayé et ah oui mais non, ça n'est pas exactement la même
situation.
J'ai vu que "espace" pouvait être traduit par s en perl, donc c'est
ce que j'ai utilisé.
Problablement ton espace n'était pas une simple espace, mais peut-être
une tabulation ou un autre caractère blanc.
Votre méthode fonctionne pour n'importe que nombre d'espaces ?
Oui, exactement comme pour les chiffres, grâce au « + » qui suit le
crochet fermant.
> à ce propos, comment ajouter l'espace " " dans la liste des caractères > présents après "toto" ?
Remplacer [0-9.] par [0-9. ]
ah ? j'ai essayé et ah oui mais non, ça n'est pas exactement la même situation. J'ai vu que "espace" pouvait être traduit par s en perl, donc c'est ce que j'ai utilisé.
Problablement ton espace n'était pas une simple espace, mais peut-être une tabulation ou un autre caractère blanc.
Votre méthode fonctionne pour n'importe que nombre d'espaces ?
Oui, exactement comme pour les chiffres, grâce au « + » qui suit le crochet fermant.
-- Olivier Miakinen
pluton
> Oui, exactement comme pour les chiffres, grâce au « + » qui suit le crochet fermant.
d'accord merci, bon, j'ai utilisé s+, comme expliqué par Marc et ça fonctionne, donc pour l'instant je m'en contente.
> Oui, exactement comme pour les chiffres, grâce au « + » qui suit le
crochet fermant.
d'accord merci, bon, j'ai utilisé s+, comme expliqué par Marc et ça
fonctionne,
donc pour l'instant je m'en contente.