trim em Perl

Em algumas linguagens de programação tem um built-in função de trim()que permite remover os espaços do início e do conca de comando. Por exemplo, se há linha ' asdf ', então a função de trim() fará dela uma linha 'asdf'. (a palavra "trim" pode ser traduzido do inglês como "podar")

Na linguagem de programação Perl nenhuma função interna trim(), mas remover espaços em branco do início e do fim da linha, e sem ela. Eis um exemplo de um programa Perl que remove iniciais e finais os espaços de comando:

▶ Run
#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use Data::Dumper;

my $str = ' asdf   ';

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

print Dumper $str;

Este programa irá imprimir na tela:

$VAR1 = 'asdf';

Como funciona

Para alterar o comando usa uma expressão regular. Eis mais um exemplo simples de uma expressão regular, que altera o linha: $str =~ s/BEFORE/AFTER/;:

  • $str — primeiro indica a variável à qual pretende aplicar a expressão regular
  • =~ — esta instrução aplica-se a expressão regular, que é indicada para a direita ao fato de que indicado à esquerda
  • s/BEFORE/AFTER/ — é regular a expressão de substituição s/, ele diz que precisa de substituir BEFORE em AFTER

No nosso exemplo, a expressão regular é um pouco mais complicado: s/^\s+|\s+$//g; Aqui diz que tudo o que corresponde a ^\s+|\s+$ precisa substituir um em uma linha. No final de uma expressão regular e o modificador /g, que diz: o que você não precisa ficar após a primeira substituição, e você deseja substituir globalmente todos os coincidência na linha.

^\s+|\s+$. Há os seguintes fragmentos:

  • ^ — significa o início de uma linha
  • \s+ — significa um ou mais пробельный símbolo (\s significa пробельный um símbolo, um sinal de + significa um ou mais)
  • | — significa lógico ou
  • $ — significa fim da linha

Т. е. ^\s+|\s+$ significa: todos os пробельные símbolos que estão no início de uma linha ou todos os пробельные símbolos, que estão no fim da linha. E esses símbolos encontrados são substituídas por uma cadeia de caracteres vazia.

Caracteres

A expressão regular $str =~ s/^\s+|\s+$//g; limpa a partir de uma variável não somente espaços em branco no início e no final, e retira todas as пробельные caracteres. O caractere de tabulação (\t), o símbolo de uma quebra de linha (\n), tudo isso é removida. Aqui está um exemplo de que isso pode ser visto:

▶ Run
#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use Data::Dumper;

my $str = " \t \n asdf \n\n \t ";

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

print Dumper $str;

No Unicode existem muitos símbolos que significam espaços. \ssignifica qualquer um desses personagens.

O uso de бибилиотек

Existem bibliotecas que permitem reduzir iniciais e os espaços de comando, por exemplo:

Mas essas bibliotecas não são fornecidos com Perl, é necessário colocar avançado. Há situações em que é mais conveniente não usar a biblioteca, e auto-escrever o código para a cortando espaços do início e do fim da linha.

Outros artigos