trim di Perl

Dalam beberapa bahasa pemrograman ada yang dibangun di fungsi trim()yang memungkinkan anda untuk menghapus spasi dari awal dan dari jalur trem. Misalnya, jika ada string ' asdf ', fungsi trim() buatlah sebuah string 'asdf'. (kata "trim" dapat diterjemahkan ke bahasa inggris sebagai "cut")

Di Perl bahasa pemrograman yang tidak memiliki built-in fungsi trim(), tapi hapus spasi dari awal dan akhir baris adalah mungkin tanpa itu. Berikut adalah contoh program Perl yang menghilangkan awal dan akhir spasi dari string:

▶ Run
#!/usr/bin/perl

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

my $str = ' asdf   ';

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

print Dumper $str;

Program ini akan menampilkan:

$VAR1 = 'asdf';

Cara kerjanya

Untuk mengubah baris menggunakan ekspresi reguler. Berikut ini adalah contoh sederhana dari ekspresi reguler, yang perubahan line: $str =~ s/BEFORE/AFTER/;:

  • $str — pertama anda tentukan variabel yang ingin anda terapkan ekspresi reguler
  • =~ — operator ini berlaku ekspresi reguler tertentu ke kanan itu dengan apa yang ditunjukkan di sebelah kiri
  • s/BEFORE/AFTER/ — ini ekspresi reguler penggantian s/, ia mengatakan perlu mengganti BEFORE pada AFTER

Dalam contoh kita, ekspresi reguler adalah sedikit lebih rumit: s/^\s+|\s+$//g; Ia mengatakan bahwa segala sesuatu yang memenuhi ^\s+|\s+$ harus diganti dengan baris kosong. Pada akhir ekspresi reguler masih ada dan pengubah /g, yang mengatakan anda tidak perlu berhenti setelah penggantian, dan kebutuhan untuk mengganti secara global semua pertandingan dalam string.

^\s+|\s+$. Ada berikut fragmen:

  • ^ berarti awal baris
  • \s+ — berarti satu atau lebih karakter spasi (\s berarti karakter spasi, dan tanda + berarti satu atau lebih)
  • | — cara yang logis atau
  • $ — berarti akhir baris

Yaitu ^\s+|\s+$ berarti bahwa semua spasi karakter di awal baris atau semua karakter white-space yang berada di akhir baris. Dan ini ditemukan simbol-simbol diganti dengan string kosong.

Karakter

Ekspresi reguler $str =~ s/^\s+|\s+$//g; menghilangkan dari variabel tidak hanya spasi di awal dan akhir, dan menghilangkan semua spasi. Karakter tab (\t), karakter tanda hubung pada baris berikutnya (\n), semua ini akan dihapus. Berikut ini adalah contoh di mana hal itu menunjukkan:

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

Dalam Unicode ada banyak karakter yang menunjukkan ruang. \sberarti setiap karakter ini.

Penggunaan perpustakaan

Ada perpustakaan khusus yang memungkinkan anda untuk menghapus awal dan trailing spasi dari string, misalnya:

Tetapi perpustakaan ini tidak dikirim dengan Perl, mereka perlu untuk menempatkan di samping itu. Ada situasi yang lebih nyaman untuk tidak menggunakan perpustakaan, dan untuk menulis kode anda sendiri untuk menghapus spasi dari awal dan dari akhir baris.

Artikel lainnya