trim Perl

在某些编程语言中有一个建立在功能 trim()哪 可以让你消除的空间,从一开始和从电车线。 例如,如果有 串 ' asdf '、功能 trim() 让它一串 'asdf'. (单词"修剪"可以被翻译为英语作为"削减")

在Perl编程语言已经没有建立在功能 trim(),但是 删除的空间,从一开始和结束的行为可能没有它。 这里是一个例子Perl程序删除的开始和结束 空间从a 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;

这个程序将显示:

$VAR1 = 'asdf';

它是如何工作的

为改变线路使用一个经常的表达。 这是一个简单的例子的一个经常的表达,从而改变 线: $str =~ s/BEFORE/AFTER/;:

  • $str —你第一次指定的可变要应用一个定期表达
  • =~ —这个操作人员适用的经常表达的指定给它的右边的是什么指示的在左边
  • s/BEFORE/AFTER/ —这经常表达更换 s/,它说需要更换 BEFOREAFTER

在我们的实例中,经常表达的是稍微更加复杂: s/^\s+|\s+$//g; 它说,一切都符合 ^\s+|\s+$ 应替换为一个空行。 在结束经常表达仍然存在,并且修改 /g,其中说 你不需要停止之后的第一次更换,并需要在全球范围内替换 所有比赛中的串。

^\s+|\s+$. 还有以下的碎片:

  • ^ 手段开始的线路
  • \s+ —是指一种或多种whitespace character(\s 装置一个空间,签署 + 装置中的一个或多个)
  • | —意味着逻辑或
  • $ —装置的底线

^\s+|\s+$ 意味着所有的空白人物正在开始的线路或 所有空白人物是在结束该行。 这些发现的符号 替换由一个空串。

字符

经常表达 $str =~ s/^\s+|\s+$//g; 删除从变 不仅空间的开始和结束,并删除所有空白。 签字(\t), 连字符,在接下来的线(\n), 所有这一切都将被删除。 这是一个例子,它表示:

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

在Unicode有许多字,表明空间。 \s装置 任何这些字符。

使用的图书馆

有特殊图书馆,让你可以除去最初的 和后的空间,从一串,例如:

但是,这些图书馆是不附带Perl,他们需要把除。 在有些情况下,这是更方便不要使用图书馆, 写你自己的代码,用于去除空间,从一开始和结束。

其他文章