Perl:修剪string开头和结尾的空格

是否有一个内置的function来修剪前后的空白,使trim(" hello world ") eq "hello world"

10 Solutions collect form web for “Perl:修剪string开头和结尾的空格”

这是在trim方法的String :: Util中可用的:

编者按: String::Util不是一个核心模块,但是你可以使用[sudo] cpan String::Util从CPAN安装它。

 use String::Util 'trim'; my $str = " hello "; $str = trim($str); print "string is now: '$str'\n"; 

打印:

string现在是'你好'

然而,做自己很容易:

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

这里有一个使用正则expression式的方法:

 $string =~ s/^\s+|\s+$//g ; # remove both leading and trailing whitespace 

Perl 6将包括一个修剪function:

 $string .= trim; 

来源: 维基百科

没有内置trimfunction,但您可以使用简单replace轻松实现自己的trim

 sub trim { (my $s = $_[0]) =~ s/^\s+|\s+$//g; return $s; } 

或在Perl 5.14及更高版本中使用非破坏性replace :

 sub trim { return $_[0] =~ s/^\s+|\s+$//rg; } 

根据这个perlmonk的线程 :

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

在这里perfaq完成howto: http ://learn.perl.org/faq/perlfaq4.html#How-do-I-strip-blank-space-from-the-beginning-end-of-a-string-

我也使用积极的前瞻来修剪文本中的重复空格:

 s/^\s+|\s(?=\s)|\s+$//g 

对于那些正在使用Text :: CSV的人来说,我发现这个线程,然后在CSV模块中注意到,你可以通过switch去掉它:

 $csv = Text::CSV->new({allow_whitespace => 1}); 

逻辑是倒退的,如果你想剥离,那么你设置为1.去图。 希望这有助于任何人。

申请: s/^\s*//; s/\s+$//; s/^\s*//; s/\s+$//; 到它。 或者使用s/^\s+|\s+$//g如果你想成为幻想的话。

一个选项是Text :: Trim :

 use Text::Trim; print trim(" example "); 

不,但是可以使用s///replace运算符和\s空白断言获得相同的结果。

  • 在C ++中省略return语句
  • 在Perl中打开和读取文件的最佳方式是什么?
  • 我怎样才能使用CPAN作为非root用户?
  • ()函数和函数()之间的区别(重复)
  • 我怎样才能从命令行检查我的系统上是否安装了Perl模块?
  • 在Perl中查找数组的大小
  • perl中的<< m'=〜m >>语法是什么意思?
  • 我应该在Windows上使用哪个版本的Perl?
  • 保持Perl内存使用率低的技巧
  • 如何解决Perl的语言环境设置警告?
  • 为什么这个程序有效? 我试图创build一个语法错误