79 votes

Perl: fonction pour couper les espaces de début et de fin de chaîne

Existe-t-il une fonction intégrée permettant de réduire les espaces de début et de fin tels que trim(" hello world ") eq "hello world" ?

83voto

Mark Byers Points 318575

Voici une approche utilisant une expression régulière:

 $string =~ s/^\s+|\s+$//g ;     # remove both leading and trailing whitespace
 

Perl 6 inclura une fonction de trim:

 $string .= trim;
 

Source: Wikipedia

81voto

Ether Points 34103

Ceci est disponible dans String :: Util avec la méthode trim:

 use String::Util 'trim';
my $str = "  hello  ";
$str = trim($str);
print "string is now: '$str'\n";
 

impressions:

la chaîne est maintenant "bonjour"

Cependant, il est assez facile de faire soi-même:

 $str =~ s/^\s+//;
$str =~ s/\s+$//;
 

26voto

eugene y Points 37378

Non, mais vous pouvez facilement écrire le vôtre:

 sub trim {
    (my $s = $_[0]) =~ s/^\s+|\s+$//g;
    return $s;        
}
 

Ou en utilisant une substitution non destructive dans Perl 5.14 et versions ultérieures:

 sub trim {
   return $_[0] =~ s/^\s+|\s+$//rg;
}
 

9voto

inkedmn Points 12655

Selon le fil de perlmonk :

 $string =~ s/^\s+|\s+$//g;
 

8voto

Nanne Points 35880

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