时间:2021-01-01 13:32:39 | 栏目:perl | 点击:次
其它一些编程语言中,有函数ltrim和rtrim分别用于从字符串开头和末尾删除空格和制表符。 也有的提供了函数trim来删除字符串两端的空白字符。Perl里没这些函数因为简单的正则表达式替换就能实现这个目的(不过我确信CPAN有很多模块实现了这些函数)。事实上这太简单了以至于成了帕金森琐碎定理里的一个显著主题。
左侧整理
ltrim或者lstrip从字符串左侧删除空白字符:
右侧整理
rtrim或者rstrip从字符串右侧删除空白字符:
整理两端
trim删除字符串两端的空白字符:
封装在函数里
如果你不想在代码中看到这些结构,你可以在代码里添加这些函数:
String::Util
要是实在不想拷贝那些东西,你可以安装一个模块。
例如String::Util提供了函数trim,你可以如下使用:
my $z = " abc ";
printf "<%s>\n", trim( $z ); # <abc>
printf "<%s>\n", trim( $z, right => 0 ); # <abc >
printf "<%s>\n", trim( $z, left => 0 ); # < abc>
Text::Trim
另一个模块Text::Trim提供了3个函数,但是它极度采纳了Perl风格的写法,可能到了有些危险的地步。
如果你调用它并将返回值用在print语句或者赋给一个变量,它会返回整理过的字符串,并保持原始字符串不变。
my $z = " abc ";
printf "<%s>\n", trim($z); # <abc>
printf "<%s>\n", $z; # < abc >
my $z = " abc ";
trim $z;
printf "<%s>\n", $z; # <abc>