OVH Cloud OVH Cloud

Suppression d'espace mais pas tous !

6 réponses
Avatar
Fabrice L.
Bonjour à tous,

J'ai un petit souci de suppression d'espace

j'ai une variable

my $var = "bla bla ";

mon but etant de transformer cette variable en "bla bla"

Je n'arrive qu'a supprimer tous les espaces
----
use CGI::Carp qw(fatalsToBrowser);
use strict;

print "Content-type: text/html\n\n";

my $var = "bla bla ";
$var =~ s/\s+//g;

print $var; <== qui donne 'blabla'
----

Il y a t'il une solution via une expression régulière de supprimer les
espaces multiples ?

merci d'avance

Fabrice

6 réponses

Avatar
Rue des Prairies
Bonjour à tous,

J'ai un petit souci de suppression d'espace

j'ai une variable

my $var = "bla bla ";

mon but etant de transformer cette variable en "bla bla"

Je n'arrive qu'a supprimer tous les espaces
----
use CGI::Carp qw(fatalsToBrowser);
use strict;

print "Content-type: text/htmlnn";

my $var = "bla bla ";
$var =~ s/s+//g;

print $var; <== qui donne 'blabla'
----

Il y a t'il une solution via une expression régulière de supprimer les
espaces multiples ?

merci d'avance

Fabrice


Bonjour,


$var =~ s/s+/ /g;

Olivier.

Avatar
Fabrice L.
Bonjour,

$var =~ s/s+/ /g;

Olivier.


Bonjour et merci pour votre réponse,

cependant cela ne répond a ma demande qui etait d'obtenir "bla bla" et non
"bla bla " qui résulte du test de votre solution.

Je continue donc a chercher

++

Fabrice

Avatar
Patrick Texier
Le Thu, 9 Mar 2006 11:24:00 +0100, "Fabrice L."
a écrit :

$var =~ s/s+//g;

Il y a t'il une solution via une expression régulière de supprimer les
espaces multiples ?


+ signifie 1 ou plus, il faut utiliser {2,}, 2 ou plus, et remplacer par
une espace.

$var =~ s/s{2,}/ /g;

voir les docs perlre et perlretut.

Avatar
Fabrice L.
+ signifie 1 ou plus, il faut utiliser {2,}, 2 ou plus, et remplacer par
une espace.

$var =~ s/s{2,}/ /g;

voir les docs perlre et perlretut.


Bonjour et merci, ceci est parfait !

Fabrice

Avatar
Rue des Prairies
Bonjour,

$var =~ s/s+/ /g;

Olivier.


Bonjour et merci pour votre réponse,

cependant cela ne répond a ma demande qui etait d'obtenir "bla bla" et non
"bla bla " qui résulte du test de votre solution.

Je continue donc a chercher

++

Fabrice


Dans ce cas il faut substituer en plusieurs étapes :

$var =~ s/^s*//; #supprime les espaces de tête
$var =~ s/s*$//; #supprime les espaces de queue
$var =~ s/s+/ /g; #remplace les espaces multiples en une espace


Avatar
publimike
Fabrice L. wrote:

Il y a t'il une solution via une expression régulière de supprimer les
espaces multiples ?


Pour ajouter mon grain de sel