trim trong Perl

Trong một ngôn ngữ đó là một chiếc chức năng trim()mà cho phép anh để loại bỏ các không gian từ đầu và từ dòng xe điện. Ví dụ, nếu đó là chuỗi ' asdf ', các chức năng trim() làm cho nó một chuỗi 'asdf'. (từ "cắt" có thể được dịch sang tiếng anh là "cắt")

Perl ngôn ngữ không có xây dựng ở chức năng trim(), nhưng bỏ các không gian từ đầu và từ những kết thúc của dòng là có thể mà không có nó. Đây là một ví dụ Perl chương trình mà loại bỏ bắt đầu và kết thúc không gian từ một chuỗi:

▶ Run
#!/usr/bin/perl

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

my $str = ' asdf   ';

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

print Dumper $str;

Chương trình này sẽ hiển thị:

$VAR1 = 'asdf';

Làm thế nào nó hoạt động

Để thay đổi dòng sử dụng một biểu hiện thường xuyên. Đây là một ví dụ đơn giản của một biểu hiện thường, mà thay đổi dòng: $str =~ s/BEFORE/AFTER/;:

  • $str — bạn đầu tiên xác định biến mà bạn muốn áp dụng một biểu hiện thường xuyên
  • =~ — này điều hành áp dụng những biểu hiện thường xuyên quy định ở bên phải của nó với những gì được ghi trên trái
  • s/BEFORE/AFTER/ — đây thường xuyên biểu hiện thay thế s/, nó nói cần phải thay thế BEFORE trên AFTER

Trong ví dụ của chúng thường xuyên biểu hiện là hơi phức tạp hơn: s/^\s+|\s+$//g; Nó nói rằng tất cả mọi thứ đáp ứng ^\s+|\s+$ sẽ được thay thế bởi một dòng trống. Vào cuối thường xuyên biểu hiện vẫn còn đó và sửa đổi /g, mà nói bạn không cần phải dừng đầu tiên sau khi thay thế, và sự cần thiết để thay thế toàn cầu tất cả các trận đấu trong chuỗi.

^\s+|\s+$. Đó là những mảnh vỡ sau đây:

  • ^ , có nghĩa là bắt đầu của những dòng
  • \s+ — có nghĩa là một hoặc một khoảng trắng nhân vật (\s có nghĩa là một nhân vật không gian, và các dấu hiệu + có nghĩa là một hoặc hơn)
  • | — có nghĩa là hợp lý, hoặc
  • $ — có nghĩa là kết thúc của dòng

Tức là ^\s+|\s+$ có nghĩa là tất cả các ký tự khoảng trắng đang ở trong đầu của đường hay tất cả màu trắng-không gian nhân vật đó đang ở cuối hàng. Và tìm thấy những biểu tượng thay thế bởi một chuỗi rỗng.

Nhân vật

Biểu hiện thường xuyên $str =~ s/^\s+|\s+$//g; loại bỏ khỏi biến không chỉ là không gian ở đầu và kết thúc, và loại bỏ tất cả các khoảng trắng. The tab nhân vật (\t), gạch nối nhân vật trên tiếp theo dòng (\n), tất cả những điều này sẽ được loại bỏ. Đây là một ví dụ nó cho thấy:

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

Trong trường hợp có rất nhiều nhân vật mà chỉ không gian. \sphương tiện bất kỳ của những nhân vật này.

Việc sử dụng các thư viện

Có thư viện đặc biệt cho phép anh để loại bỏ các ban đầu và dấu gian từ một chuỗi, ví dụ như:

Nhưng các thư viện được không vận chuyển với Perl, họ cần phải đặt ở ngoài. Có những tình huống đó, nó là thuận tiện hơn không đến thư viện, và để viết riêng của bạn mã để loại bỏ các không gian từ đầu và từ những kết thúc của dòng.

Các bài viết khác