programa - Perl: función para recortar los espacios en blanco y posteriores del hilo
perl vs python (10)
Aplicar: s/^/s*//; s//s+$//;
s/^/s*//; s//s+$//;
lo. O use s/^/s+|/s+$//g
si quiere ser elegante.
¿Hay una función incorporada para recortar los espacios en blanco iniciales y finales de modo que trim(" hello world ") eq "hello world"
?
Aquí hay un enfoque que usa una expresión regular:
$string =~ s/^/s+|/s+$//g ; # remove both leading and trailing whitespace
Perl 6 incluirá una función de recorte:
$string .= trim;
Fuente: Wikipedia
Complete howto en el perfaq aquí: http://learn.perl.org/faq/perlfaq4.html#How-do-I-strip-blank-space-from-the-beginning-end-of-a-string-
De acuerdo con el hilo de este perlmonk :
$string =~ s/^/s+|/s+$//g;
Esto está disponible en String::Util con el método de trim
:
Nota del editor: String::Util
no es un módulo principal, pero puede instalarlo desde CPAN con [sudo] cpan String::Util
.
use String::Util ''trim'';
my $str = " hello ";
$str = trim($str);
print "string is now: ''$str''/n";
huellas dactilares:
la cuerda ahora es ''hola''
Sin embargo, es bastante fácil hacerlo usted mismo:
$str =~ s/^/s+//;
$str =~ s//s+$//;
No hay función de trim
incorporada, pero puede implementar fácilmente la suya con una simple sustitución:
sub trim {
(my $s = $_[0]) =~ s/^/s+|/s+$//g;
return $s;
}
o usando la sustitución no destructiva en Perl 5.14 y posterior:
sub trim {
return $_[0] =~ s/^/s+|/s+$//rg;
}
No, pero puede usar el operador s///
sustitución y la aserción de /s
whitespace para obtener el mismo resultado.
Para aquellos que están usando Text :: CSV, encontré este hilo y luego noté dentro del módulo CSV que podría quitarlo mediante el cambio:
$csv = Text::CSV->new({allow_whitespace => 1});
La lógica es al revés porque si quieres desnudarte, debes establecerlo en 1. Ve figura. Espero que esto ayude a cualquiera.
También utilizo un lookahead positivo para recortar espacios repetitivos dentro del texto:
s/^/s+|/s(?=/s)|/s+$//g
Una opción es Text::Trim :
use Text::Trim;
print trim(" example ");