trim in Perl

In alcuni linguaggi di programmazione di un built-in funzione di trim()che consente di rimuovere gli spazi di inizio e di conca della riga. Ad esempio, se ci sono stringa ' asdf ', la funzione trim() farà di lei una stringa 'asdf'. (la parola "trim" può essere tradotto in inglese come "tagliare")

Nel linguaggio di programmazione Perl no funzione integrata trim(), ma rimuovere gli spazi vuoti all'inizio e alla fine di una stringa è possibile e senza di lei. Ecco un esempio di un programma Perl che pulisce iniziali e finali gli spazi da una stringa:

▶ Run
#!/usr/bin/perl

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

my $str = ' asdf   ';

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

print Dumper $str;

Questo programma visualizza:

$VAR1 = 'asdf';

Come funziona

Per modificare una riga viene utilizzato l'espressione regolare. Ecco un esempio più semplice espressione regolare, che cambia riga: $str =~ s/BEFORE/AFTER/;:

  • $str — prima viene utilizzata la variabile a cui si desidera applicare l'espressione regolare
  • =~ — l'operatore utilizza l'espressione regolare, che è indicato a destra a quello che è indicato a sinistra
  • s/BEFORE/AFTER/ — questa espressione regolare sostituzione s/, dice che è necessario sostituire BEFORE su AFTER

Nel nostro esempio, l'espressione regolare un po ' più complicato: s/^\s+|\s+$//g; Qui dice che tutto ciò che corrisponde ^\s+|\s+$ è necessario sostituire la riga vuota. Alla fine dell'espressione regolare c'è ancora e il modificatore /g, che dice che non ha bisogno di fermarsi dopo la prima sostituzione, e la necessità di sostituire globalmente coincidenza in riga.

^\s+|\s+$. Qui ci sono i seguenti passaggi:

  • ^ — indica l'inizio della stringa
  • \s+ — indica uno o più carattere di spazio (\s significa carattere di spazio, e il segno + indica uno o più)
  • | — significa logico o
  • $ — indica la fine della stringa

Cioè ^\s+|\s+$ significa: tutti gli spazi vuoti che si trovano all'inizio di una riga o tutti gli spazi vuoti che si trovano alla fine della riga. E queste trovate caratteri vengono sostituiti da una riga vuota.

Caratteri

L'espressione regolare $str =~ s/^\s+|\s+$//g; toglie dalla variabile non solo spazi vuoti all'inizio e alla fine, e rimuove tutti gli spazi vuoti. Il carattere di tabulazione (\t), simbolo di trasferimento su un'altra stringa (\n), tutto questo sarà rimosso. Ecco un esempio in cui si vede:

▶ 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;

In Unicode ci sono un sacco di caratteri che significano gli spazi. \ssignifica uno di questi caratteri.

L'uso di бибилиотек

Esistono librerie che consentono di rimuovere elementare e gli spazi finali da una stringa, ad esempio:

Ma queste librerie non sono forniti insieme con il Perl, il loro bisogno di mettere ulteriormente. Ci sono situazioni che è più conveniente non utilizzare la libreria, e da solo scrivere il codice per il tagliando spazi di inizio e di fine riga.

Altri articoli