2 votes

Comment correspondre \n à la fin d'une variable en utilisant un regexp

J'ai stocké un fichier dans une variable, disons $buffer . Il existe un "\n" à la fin de $buffer . Je veux le remplacer par une valeur vide. J'ai essayé

regexp "\n$" $buffer

Ne fonctionne pas. Le code est en TCL, mais j'ai besoin de savoir comment on peut le faire en Perl ou en TCL.

5voto

kostix Points 11762
string trim $buffer \n

Voir le manuel .

3voto

Borodin Points 52478

En Perl, chomp supprime le séparateur de fin d'enregistrement. Donc, pour supprimer le ' \n Tout ce dont vous avez besoin, c'est chomp $buffer .

2voto

ladayaroslav Points 21

Pourquoi pas : regsub {\n$} $buffer ""

2voto

theory Points 3177

chomp est probablement le mieux, comme l'a dit @Borodin, mais vous pouvez aussi utiliser \z pour ne correspondre qu'à la fin de la chaîne :

$buffer =~ s/\n\z//;

1voto

goldilocks Points 6181

En Perl :

$buffer =~ s/\n$//;

=~ est l'opérateur de liaison, s est l'opérateur de substitution, le / sont des délimiteurs pour les opérandes, donc \n$ est remplacé par la chaîne vide.

chomp($buffer) fera la même chose.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X