trim in Perl

In einigen Programmiersprachen gibt es die eingebaute Funktion trim()die ermöglicht das entfernen von Leerzeichen am Anfang und der Conca Zeilen. Zum Beispiel, wenn es Zeile ' asdf ', wird die Funktion trim() machen Sie eine Zeile 'asdf'. (das Wort "trim" kann man übersetzen mit der englischen Sprache als "Beschneidung")

In der Programmiersprache Perl keine eingebaute Funktion trim(), aber entfernen Sie Leerzeichen am Anfang und Ende der Zeilen können Sie ohne Sie. Hier ist ein Beispiel für ein Perl-Programm, das entfernt führende und nachfolgende Leerzeichen aus einer Zeichenfolge:

▶ Run
#!/usr/bin/perl

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

my $str = ' asdf   ';

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

print Dumper $str;

Dieses Programm zeigt auf dem Bildschirm:

$VAR1 = 'asdf';

Wie es funktioniert

Für eine änderung der Zeile wird ein regulärer Ausdruck verwendet. Hier ist ein einfaches Beispiel für reguläre Ausdrücke, die das ändert Zeile: $str =~ s/BEFORE/AFTER/;:

  • $str — zunächst wird die Variable mit dem regulären Ausdruck anwenden
  • =~ — diese Anweisung wendet einen regulären Ausdruck, der rechts davon angegeben, leider sind die Links angegeben
  • s/BEFORE/AFTER/ ist ein regulärer Ausdruck Ersatz s/, sagt, dass es ersetzt werden muss BEFORE auf AFTER

In unserem Beispiel wird der reguläre Ausdruck ein wenig komplizierter: s/^\s+|\s+$//g; Hier heißt es, dass alles erfüllt ^\s+|\s+$ sollte ersetzt werden durch eine leere Zeile. Am Ende des regulären Ausdrucks gibt es noch Modifier /g, das sagt was nicht zu stoppen nach dem ersten Austausch, sondern muss Global ersetzen alle Treffer in einer Zeile.

^\s+|\s+$. Hier gibt es folgende Fragmente:

  • ^ — bedeutet den Anfang der Zeile
  • \s+ — bedeutet ein oder mehr Leerzeichen (\s bedeutet Leerzeichen und Zeichen + bedeutet ein oder mehr)
  • | — bedeutet ein logisches oder
  • $ — bedeutet das Ende der Zeile

D.h. ^\s+|\s+$ bedeutet: alle Whitespace-Zeichen sind am Anfang der Zeile oder alle Leerzeichen, die am Ende der Zeile. Und diese gefundenen Symbole durch eine leere Zeichenfolge.

Symbole

Regulärer Ausdruck $str =~ s/^\s+|\s+$//g; aus der Variablen entfernt nicht nur Leerzeichen am Anfang und Ende, und entfernt alle Leerzeichen. Tabulator (\t), Symbol der Migration zu einer anderen Zeile (\n), es wird alles gereinigt. Hier ist ein Beispiel, an dem dieses zu sehen:

▶ 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 gibt es viele Zeichen, die Leerzeichen bedeuten. \sbedeutet eines dieser Zeichen.

Verwendung бибилиотек

Es gibt spezielle Bibliotheken ermöglichen die anfangs-reinigen und nachfolgende Leerzeichen aus einer Zeichenfolge, zum Beispiel:

Aber diese Bibliotheken sind nicht im Lieferumfang mit Perl, müssen Sie zusätzlich zu setzen. Es gibt Situationen, was praktisch nicht die Bibliothek benutzen, und selbst Code schreiben, schneiden Leerzeichen von Beginn und vom Ende einer Zeichenfolge.

Andere Artikel