OVH Cloud OVH Cloud

Enlever les espace d'un tableau ?

5 réponses
Avatar
Sameline
Bonjour,

J'ai une variable qui contient :

"1 2 3 4 5 a 2 d 6"

et parfois

"1 2 2 5 j y y h 7"

donc le meme nombre de "colonne" pour moi mais de temps en temps
j'ai un espace en plus ..

comment je peux faire pour mettre touss cela dans un tableau qui
donnerais grosso modo: "1" "2" "2" "5" "j" "y" "y" "h" "7"
donc juste les données qui ne sont pas des espaces

merci d'avance

5 réponses

Avatar
perleen
Sameline wrote:
Bonjour,

J'ai une variable qui contient :

"1 2 3 4 5 a 2 d 6"

et parfois

"1 2 2 5 j y y h 7"

donc le meme nombre de "colonne" pour moi mais de temps en temps
j'ai un espace en plus ..

comment je peux faire pour mettre touss cela dans un tableau qui
donnerais grosso modo: "1" "2" "2" "5" "j" "y" "y" "h" "7"
donc juste les données qui ne sont pas des espaces
Tu fais un split avec comme separateur un ou plusieurs espaces (regex)


my $tt="1 2 2 5 j y y h 7";
my @tableau = split ('s+', $tt); #s+ => 1 ou plus d'espaces

merci d'avance


Avatar
Paul Gaborit
Sameline wrote:
J'ai une variable qui contient :

"1 2 3 4 5 a 2 d 6"

et parfois

"1 2 2 5 j y y h 7"

donc le meme nombre de "colonne" pour moi mais de temps en temps
j'ai un espace en plus ..

comment je peux faire pour mettre touss cela dans un tableau qui
donnerais grosso modo: "1" "2" "2" "5" "j" "y" "y" "h" "7"
donc juste les données qui ne sont pas des espaces



À (at) 13 Dec 2005 01:59:20 -0800,
"perleen" écrivait (wrote):
Tu fais un split avec comme separateur un ou plusieurs espaces (regex)

my $tt="1 2 2 5 j y y h 7";
my @tableau = split ('s+', $tt); #s+ => 1 ou plus d'espaces


Et pour compléter cette réponse, on peut signaler que cette opération
est tellement courante que c'est celle proposée par défaut par split
(dans la mesure où on doit traiter $_) :

$_ = "1 2 2 5 j y y h 7";
my $values = split;

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>


Avatar
Nicolas George
Paul Gaborit wrote in message :
Et pour compléter cette réponse, on peut signaler que cette opération
est tellement courante que c'est celle proposée par défaut par split
(dans la mesure où on doit traiter $_) :


Ou même si on doit traiter autre chose que $_, puisque c'est le comportement
adopté si on met la chaîne « " " » comme délimiteur.

À noter que split tout court (sur $_ implicitement) et sur " ",
contrairement à sur /s+/, suppriment les champs vides en début de chaîne.

Avatar
Paul Gaborit
À (at) Tue, 13 Dec 2005 13:58:41 +0100,
j'écrivais :
[...]
$_ = "1 2 2 5 j y y h 7";
my $values = split;


C'était en fait :

$_ = "1 2 2 5 j y y h 7";
my @values = split;

Comme ça, ça marche mieux ;-)

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
Sameline
Merci a tous, j'ai exactement ce qu'il me faut maintenant ;=)

Je progress grace a vous

A+

Sameline


Bonjour,

J'ai une variable qui contient :

"1 2 3 4 5 a 2 d 6"

et parfois

"1 2 2 5 j y y h 7"

donc le meme nombre de "colonne" pour moi mais de temps en temps
j'ai un espace en plus ..

comment je peux faire pour mettre touss cela dans un tableau qui
donnerais grosso modo: "1" "2" "2" "5" "j" "y" "y" "h" "7"
donc juste les données qui ne sont pas des espaces

merci d'avance