J'ai donc fait un petit programme Perl qui le remet dans la bonne forme.
J'utilise une boucle qui lit le fichier, met son contenu dans une variable
et supprime
les retours chariot en trop.
Cependant, pour ma culture personnelle, pourriez-vous me dire comment
supprimer le retour chariot en trop, dans toute l'instance, en utilisant une
regexp
multiligne ?
J'ai donc fait un petit programme Perl qui le remet dans la bonne forme.
J'utilise une boucle qui lit le fichier, met son contenu dans une variable et supprime les retours chariot en trop.
Cependant, pour ma culture personnelle, pourriez-vous me dire comment supprimer le retour chariot en trop, dans toute l'instance, en utilisant une regexp multiligne ?
Merci d'avance
JP
En supposant que tu veux enlever les n ou r à la fin de la chaine de caractères $_ =~ s![nr]+$!!;
En supposant que tu veux enlever les n ou r > 1 dans toute la chaine de caractères $_ =~ s!(n|r)+!$1!g;
Cordialement Marc Dierick
Jean-Paul Lauque wrote:
Bonjour,
Voici mon problème.
J'ai un fichier SGML qui contient des choses comme :
J'ai donc fait un petit programme Perl qui le remet dans la bonne
forme.
J'utilise une boucle qui lit le fichier, met son contenu dans une
variable et supprime
les retours chariot en trop.
Cependant, pour ma culture personnelle, pourriez-vous me dire
comment supprimer le retour chariot en trop, dans toute l'instance,
en utilisant une regexp
multiligne ?
Merci d'avance
JP
En supposant que tu veux enlever les n ou r à la fin de la chaine de
caractères
$_ =~ s![nr]+$!!;
En supposant que tu veux enlever les n ou r > 1 dans toute la chaine
de caractères
$_ =~ s!(n|r)+!$1!g;
J'ai donc fait un petit programme Perl qui le remet dans la bonne forme.
J'utilise une boucle qui lit le fichier, met son contenu dans une variable et supprime les retours chariot en trop.
Cependant, pour ma culture personnelle, pourriez-vous me dire comment supprimer le retour chariot en trop, dans toute l'instance, en utilisant une regexp multiligne ?
Merci d'avance
JP
En supposant que tu veux enlever les n ou r à la fin de la chaine de caractères $_ =~ s![nr]+$!!;
En supposant que tu veux enlever les n ou r > 1 dans toute la chaine de caractères $_ =~ s!(n|r)+!$1!g;
Cordialement Marc Dierick
Michel Rodriguez
Jean-Paul Lauque wrote:
Bonjour,
Voici mon problème.
J'ai un fichier SGML qui contient des choses comme :
J'ai donc fait un petit programme Perl qui le remet dans la bonne forme.
J'utilise une boucle qui lit le fichier, met son contenu dans une variable et supprime les retours chariot en trop.
Cependant, pour ma culture personnelle, pourriez-vous me dire comment supprimer le retour chariot en trop, dans toute l'instance, en utilisant une regexp multiligne ?
Ca ca devrait marcher, sauf cas un > dans le texte (possible en SGML comme en XML) viendrait interferer:
#!/usr/bin/perl -w use strict;
undef $/; # pour lire tout le fichier d'un coup my $sgml=<DATA>; $sgml=~ s{> # fin de balise n # retour a la ligne (?=[^<]) # suivi de tout sauf d'un debut de balise # (avec un lookahead pour faire joli et # eviter de memoriser le caractere dans $1) } {>}xg; # x pour pouvoir commenter, g pour global print $sgml;
J'ai donc fait un petit programme Perl qui le remet dans la bonne forme.
J'utilise une boucle qui lit le fichier, met son contenu dans une variable
et supprime les retours chariot en trop.
Cependant, pour ma culture personnelle, pourriez-vous me dire comment
supprimer le retour chariot en trop, dans toute l'instance, en utilisant
une regexp multiligne ?
Ca ca devrait marcher, sauf cas un > dans le texte (possible en SGML comme
en XML) viendrait interferer:
#!/usr/bin/perl -w
use strict;
undef $/; # pour lire tout le fichier d'un coup
my $sgml=<DATA>;
$sgml=~ s{> # fin de balise
n # retour a la ligne
(?=[^<]) # suivi de tout sauf d'un debut de balise
# (avec un lookahead pour faire joli et
# eviter de memoriser le caractere dans $1)
}
{>}xg; # x pour pouvoir commenter, g pour global
print $sgml;
J'ai donc fait un petit programme Perl qui le remet dans la bonne forme.
J'utilise une boucle qui lit le fichier, met son contenu dans une variable et supprime les retours chariot en trop.
Cependant, pour ma culture personnelle, pourriez-vous me dire comment supprimer le retour chariot en trop, dans toute l'instance, en utilisant une regexp multiligne ?
Ca ca devrait marcher, sauf cas un > dans le texte (possible en SGML comme en XML) viendrait interferer:
#!/usr/bin/perl -w use strict;
undef $/; # pour lire tout le fichier d'un coup my $sgml=<DATA>; $sgml=~ s{> # fin de balise n # retour a la ligne (?=[^<]) # suivi de tout sauf d'un debut de balise # (avec un lookahead pour faire joli et # eviter de memoriser le caractere dans $1) } {>}xg; # x pour pouvoir commenter, g pour global print $sgml;
__ Michel Rodriguez Perl & XML http://xmltwig.com
dominix
"Jean-Paul Lauque" wrote in message news:bjig3p$ftb$
Bonjour,
Voici mon problème.
...
Cependant, pour ma culture personnelle, pourriez-vous me dire comment supprimer le retour chariot en trop, dans toute l'instance, en utilisant une
regexp multiligne ?
le principe pour le multiligne c'est d'avoir les retour de lignes dans la(les) variables, il faut donc redefinir $/ ou utiliser -0 en ligne de commande ou #!perl -00 pour lire la var depuis un fichier. ensuite dans la regexp il y a le switch /s pour inclure les "n"
ex: #!/usr/bin/perl undef $/; while (<>) { s/n//gs; print; }
ou bien perl -00pe 's/n//gs'
"Jean-Paul Lauque" <jean-paul.lauque@wanadoo.fr> wrote in message
news:bjig3p$ftb$1@news-reader1.wanadoo.fr...
Bonjour,
Voici mon problème.
...
Cependant, pour ma culture personnelle, pourriez-vous me dire comment
supprimer le retour chariot en trop, dans toute l'instance, en utilisant
une
regexp multiligne ?
le principe pour le multiligne c'est d'avoir les retour de lignes dans
la(les) variables, il faut donc redefinir $/ ou utiliser -0 en ligne
de commande ou #!perl -00 pour lire la var depuis un fichier.
ensuite dans la regexp il y a le switch /s pour inclure les "n"
ex:
#!/usr/bin/perl
undef $/;
while (<>) {
s/n//gs;
print;
}
"Jean-Paul Lauque" wrote in message news:bjig3p$ftb$
Bonjour,
Voici mon problème.
...
Cependant, pour ma culture personnelle, pourriez-vous me dire comment supprimer le retour chariot en trop, dans toute l'instance, en utilisant une
regexp multiligne ?
le principe pour le multiligne c'est d'avoir les retour de lignes dans la(les) variables, il faut donc redefinir $/ ou utiliser -0 en ligne de commande ou #!perl -00 pour lire la var depuis un fichier. ensuite dans la regexp il y a le switch /s pour inclure les "n"
ex: #!/usr/bin/perl undef $/; while (<>) { s/n//gs; print; }