• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Perl删除前导和拖尾空白(删除左右空格、空白字符)

    其它一些编程语言中,有函数ltrim和rtrim分别用于从字符串开头和末尾删除空格和制表符。 也有的提供了函数trim来删除字符串两端的空白字符。Perl里没这些函数因为简单的正则表达式替换就能实现这个目的(不过我确信CPAN有很多模块实现了这些函数)。事实上这太简单了以至于成了帕金森琐碎定理里的一个显著主题。

    左侧整理

    ltrim或者lstrip从字符串左侧删除空白字符:

    复制代码 代码如下:

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

    从字符串开头^开始匹配一个或者多个空白字符(\s+),并将之替换成空字符。

    右侧整理

    rtrim或者rstrip从字符串右侧删除空白字符:

    复制代码 代码如下:

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

    匹配一个或者多个空白字符(\s+)直到字符串末尾($),并将之替换成空字符。

    整理两端

    trim删除字符串两端的空白字符:

    复制代码 代码如下:

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

    将上面两个正则表达式用或记号|连起来,并在最后增加/g用以全局地执行替换操作(反复多次)。

    封装在函数里

    如果你不想在代码中看到这些结构,你可以在代码里添加这些函数:

    复制代码 代码如下:

    sub ltrim { my $s = shift; $s =~ s/^\s+//;       return $s };
    sub rtrim { my $s = shift; $s =~ s/\s+$//;       return $s };
    sub  trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };

    使用时像这样:
    复制代码 代码如下:

    my $z = " abc ";
    printf "%s>\n", trim($z);   # abc>
    printf "%s>\n", ltrim($z);  # abc >
    printf "%s>\n", rtrim($z);  # abc>
    String::Util

    String::Util

    要是实在不想拷贝那些东西,你可以安装一个模块。

    例如String::Util提供了函数trim,你可以如下使用:

    复制代码 代码如下:

    use String::Util qw(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>


    默认它整理两侧,你不需要提供参数。 我觉得,自己实现ltrim和rtrim会清晰些。

    Text::Trim

    另一个模块Text::Trim提供了3个函数,但是它极度采纳了Perl风格的写法,可能到了有些危险的地步。

    如果你调用它并将返回值用在print语句或者赋给一个变量,它会返回整理过的字符串,并保持原始字符串不变。

    复制代码 代码如下:

    use Text::Trim qw(trim);

    my $z = " abc ";
    printf "%s>\n", trim($z);  # abc>
    printf "%s>\n", $z;       # abc >


    另一方面,如果你在空白上下文调用它,亦即不使用返回值,trim函数就会修改参数,产生类似chomp的行为。
    复制代码 代码如下:

    use Text::Trim qw(trim);

    my $z = " abc ";
    trim $z;
    printf "%s>\n", $z;       # abc>

    您可能感兴趣的文章:
    • 用于过滤空白字符的几种常见的js正则表达式pattern
    • 用MySQL函数清除字符串首尾空白字符的方法
    • ASP.NET通过自定义函数实现对字符串的大小写切换功能
    • PHP实现删除字符串中任何字符的函数
    • 10个.NET中删除空白字符串的方法
    上一篇:About Perl(翻译Perl官网介绍)
    下一篇:Perl中捕获警告信息、异常信息并写入日志详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Perl删除前导和拖尾空白(删除左右空格、空白字符) Perl,删除,前导,和,拖尾,